预处理命令:
预处理在编译前就执行了!!
快速入门小案例:
1 #include <stdio.h> 2 #if _WIN32 3 #include <windows.h> 4 #elif __linux__ 5 #include <unistd.h> 6 #endif 7 8 int main(){ 9 #if _WIN32 10 Sleep(5000); 11 #elif __linux__ 12 sleep(5); 13 #endif 14 puts("你好"); 15 return 0; 16 }
注意不同平台的源码不同,如windows下,源码为:
1 #include <stdio.h> 2 #include <windows.h> 3 4 int main(){ 5 Sleep(5000); 6 puts("你好"); 7 return 0; 8 }
宏定义:
即:用标识符表示字符串
例子:
宏定义的形式:
例子:
别忘了小括号也是一部分!!
注意事项:
带参宏定义
形参:宏定义中的参数,此处是:a和b
实参:宏调用中的参数x,此处是:和y
注意事项和细节:
因此需要修改形参后面的字符串为:
这样即可解决边界效应
带参宏定义和函数的区别:
宏不占用内存,也不参与编译
函数会被编译,还会占用内存
此处案例,函数的循环运行了5次,而宏定义的运行了3次
宏定义中:
i=1,在((i++)*(i++))中,第一个循环是1*1,但是i++执行了两次,所以当i再次回到while时,i已经为3
预处理命令小结:
预处理使用注意事项:
标签:__,定义,++,参数,include,预处理 From: https://www.cnblogs.com/MorningMaple/p/16764697.html