预处理命令

1.预定义符号

C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的

__FILE__ //进行编译的源文件
__LINE__ //文件当前的行号
__DATE__ //文件被编译的日期
__TIME__ //文件被编译的时间
__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义

2.#define定义常量

#define name stuff

建议不要在define定义标识符时,在最后加上;

这要容易导致替换时后面出现额外的;

3.#define定义宏

#define机制包括一个规定,允许把参数替换到文本中,这种实现通常成为宏

#define name( parament-list ) stuff

其中的parament-list是一个由逗号隔开的符号表,它们可能出现在stuff中

4.宏函数的对比

宏通常被应用于执行简单的运算

1.宏比函数在程序的规模和速度方面更胜一筹

2.宏的参数时类型无关的

和函数比宏的劣势:

1.每次使用宏时,宏定义的代码将插入到程序中,除非宏比较短,否则可能会大幅度增加程序的长度

2.宏没办法调试

3.宏类型无关,不够严谨

4.宏可能会带来运算符优先级的问题,导致程序容易出现错误

5.#和##

#运算符所执行的操作可以理解为"字符串化"

##可以把位于它两边的符号合成一个符号,被称为记号粘合

6.命名约定

把宏名全部大写

函数名不要全部大写

7.#undef

这条指令用于移除一个宏定义

#undef NAME

相关推荐

  1. g++ 预处理 编译 汇编 链接 命令

    2024-04-05 10:12:05       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 10:12:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 10:12:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 10:12:05       82 阅读
  4. Python语言-面向对象

    2024-04-05 10:12:05       91 阅读

热门阅读

  1. Linux系统下tomcat服务自动重启

    2024-04-05 10:12:05       34 阅读
  2. 每天学习一个Linux命令之umount

    2024-04-05 10:12:05       36 阅读
  3. P1776宝物筛选

    2024-04-05 10:12:05       38 阅读
  4. Day1 单调数据结构

    2024-04-05 10:12:05       29 阅读
  5. 循环控制语句的实际应用(2)

    2024-04-05 10:12:05       34 阅读
  6. 安卓APP的开发:为了安全的设计

    2024-04-05 10:12:05       39 阅读
  7. C++11:lambda表达式 & 包装器

    2024-04-05 10:12:05       31 阅读
  8. node.js 常用命令

    2024-04-05 10:12:05       41 阅读
  9. Docker 部署war

    2024-04-05 10:12:05       34 阅读
  10. 解决跨域的几种方法

    2024-04-05 10:12:05       38 阅读