宏定义

    xiaoxiao2025-06-27  19

    宏定义不管在C还是C++中都经常用到,其用法是个比较神奇的东西,宏定义不表示任何类型,同样也表示任何类型,这也是宏定义的一个优点,宏函数类似C++的函数重载,可以用于任何类型,但不进行类型检查,宏定义实际代表的就是一个字符串,比如下面这段代码

    #include<iostream> using namespace std; #define M int main( M) { cout << "hello world" << endl; return 0; }

    看起来就是一段错误的代码,但的的确确是可以编译通过并且运行的, 其输出结果如下:

    宏定义还有一个优点就是宏定义是不限制作用域的,即使被定义到了一个函数中,在其他函数中仍然能够使用。

    #include<iostream> using namespace std; #define M int main( void func() { #define T 10 } int print() { int a = T; cout << "a = " << a << endl; return 0; } M) { print(); return 0; }

    输出结果如下:

    这也是明显跟typedef不同之处,typedef是限定作用域的,若typedef在函数1中定义,则不能用在函数2中。

    转载请注明原文地址: https://ju.6miu.com/read-1300389.html
    最新回复(0)