c语言预处理 if,精解C语言预处理命令(四)之#if、##ifdef、#ifndef的用法详解

假如现在要开发一个C语言程序,让它输出红色的文字,并且要求跨平台,在 Windows 和 Linux 下都能运行,怎么办呢?

这个程序的难点在于,不同平台下控制文字颜色的代码不一样,我们必须要能够识别出不同的平台。

Windows 有专有的宏_WIN32,Linux 有专有的宏__linux__,以现有的知识,我们很容易就想到了 if else,请看下面的代码:

1. #include

2. int main(){

3. if(_WIN32){

4. system("color 0c");

5. printf("http://c.biancheng.net\n");

6. }else if(__linux__){

7. printf("\033[22;31mhttp://c.biancheng.net\n\033[22;30m");

8. }else{

9. printf("http://c.biancheng.net\n");

10. }

12. return 0;

13. }

#include

int main(){

if(_WIN32){

system("color 0c");

printf("http://c.biancheng.net\n");

}else if(__linux__){

printf("\033[22;31mhttp://c.biancheng.net\n\033[22;30m");

}else{

printf("http://c.biancheng.net\n");

}

return 0;

}

但这段代码是错误的,在 Windows 下提示 linux 是未定义的标识符,在 Linux 下提示 _Win32 是未定义的标识符。对上面的代码进行改进:

1. #include

2. int main(){

3. #if _WIN32

4. system("color 0c

你可能感兴趣的:(c语言预处理,if)