宏定义
来源:互联网 发布:中国电信网络传真 编辑:程序博客网 时间:2024/06/01 08:16
#include<stdio.h>
#define PI 3.1415926 //后面不要加分号
这些都是编译预处理指令,不是C语言特有的。
1宏定义只是简单的字符替换,
如果#define x a+b 那么x*x在编译时会换成a+b*a+b,而不是(a+b)*(a+b),所以宏定义时要加括号防止出错
2宏里面如果有其他的宏,也会被替换,
3宏的值超过一行,最后一行之前的每一行行末要加\
4宏里面可以有注释
5宏定义可以没有值,只是告诉编译器有这个宏
6宏可以带参数 如#define MIN(a,b) ((a)>(b)?:(b):(a))
7预定义的宏
__LINE__ 源代码当前所在行的行号
__FILE__ 源代码的文件名
__DATE__ 编译时候的日期
__TIME__ 编译时候的时间
__STDC__
#include <stdio.h>int main(int argc, char const *argv[]){printf("%s %d\n",__FILE__,__LINE__);printf("%s %s",__DATE__,__TIME__);return 0;}
8部分宏会被inline函数取代
阅读全文
0 0
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义,#,##
- 宏定义
- 宏定义
- 宏定义
- HDPCD-Java-复习笔记(21)- lab
- 一个32岁入门的70后程序员给我的启示
- 趣图丨真·程序员的日常
- Java赋值问题,如下
- maven实现按需打包指定接口
- 宏定义
- Ansible入门基础
- 软考嵌入式系统设计师2011年上午试题总结
- AngularJS实现对用户信息的增删改查
- 从经济学博士到爬坑机器学习十年,微软首席数据科学家谢梁的AI故事
- 委托的学习以及使用
- 笔记:关于hibernate在dao层要导入的包
- 史上最简单的react脚手架搭建
- linux 环境下JDK的安装+环境变量配置