带参宏定义

版权声明:有疑问欢迎联系我QQ2267507789 https://blog.csdn.net/CCCrunner/article/details/82844209
  • 宏名和参数的括号间不能有空格
  • 宏替换只作替换,不做计算,不做表达式求解
  • 函数调用在编译后程序运行时进行,并且分配内存,宏定义在编译前进行,不分配内存
  • 宏的哑实结合不存在类型,也没有类型转换。
  • 函数只有一个返回值,利用宏则可以设法得到多个值
    宏定义说明
  • 宏名一般用大写
  • 使用宏可提高程序的通用性和易读性,减少不一致性,
  • 减少输入错误和便于修改。例如数字大小通常用宏定义
  • 宏定义末尾不加分号;
  • 宏定义通常卸载函数的花括号外边,作用域为其后的程序,通常在文件的最开头
  • 可以用#undef命令终止宏定义的作用域
  • 宏定义允许嵌套
  • 宏定义不分配内存,变量定义分配内存
  • 宏定义不存在类型问题,它的参数也是无类型的
  • 宏定义展开使源程序变长,函数调用不会
  • 宏展开不占用运行时间,只占编译时间,函数调用占运行时间(分配内存,保留现场,值传递,返回值)

学习视频网址:
http://edu.51cto.com/center/course/lesson/index?id=214262
http://www.51zxw.net/show.aspx?id=17257&cid=329
凡是以"#"号开头的行都成为“编译预处理”命令行
宏替换

猜你喜欢

转载自blog.csdn.net/CCCrunner/article/details/82844209
今日推荐