42 预处理命令
1, ①使用库函数之前,应该用#include 引入对应的头文件,这种以 # 好开头的命令称为预处理命令。
②这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理,提前处理)
③预处理主要是处理以 # 开头的命令,例如 #include<stdio.h>等,预处理命令要放在所有函数之外,而且一般都放在源文件的前面
④预处理是C语言的一个重要功能,由预处理程序完成,当对一个源文件进行编译时,系统将自动调用预处理程序对源程序中的预处理部分做处理,处理完毕自动进入对源程序的编译。
⑤C语言提供了多种预处理功能,如宏定义,文件包含,条件编译等,合理的使用它们会使编写的程序便于阅读,修改,移植和调试,也有利于模块化程序设计。
2,开发一个C程序,让它暂停5秒以后再输入内容“hello world” ,并且要求跨平台,在 windows 和 linux 下都能运行,如何处理。
①windows平台下的暂停函数的原型是 void Sleep (DWORD dwMilliseconds ) ,参数的单位是毫秒,位于 windows.h 头文件
② linux 平台下的暂停函数的原型是 unsigned int sleep(unsigned int seconds),参数的单位是秒,位于 unistd.h 头文件
③ #if #elif #endif 就是预处理命令,它们都是在编译之前由预处理程序来执行的。
1 #if _WIN32 //如果是windows平台,就执行#include<windows.h> 2 #include<windows.h> 3 #elif _linux_ //否则判断是不是Linux,如果是就引入<unistd.h> 4 #include<unistd.h> 5 #endif 6 void main() { 7 #if _WIN32 8 Sleep(5000);//毫秒 9 #elif _linux_ 10 sleep(5); //秒 11 #endif 12 puts("hello,world"); 13 }
说明:在windows和 linux 下,生成源码不一样。
在windows下:
#include<windows.h>
void main(){
Sleep(5000);
puts("hello,world") ;
}