54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
#include <math.h>
|
|
#include <stdbool.h>
|
|
#include <string.h>
|
|
#ifdef _WIN32
|
|
#include <windows.h>
|
|
#include <direct.h>
|
|
#endif
|
|
|
|
// !宏定义
|
|
/*
|
|
1.译预处理指令
|
|
#开头的是编译预处理指令
|
|
它们不是C语言的成分,但是C语言程序离不开它们
|
|
#define用来定义一个宏
|
|
2.#define
|
|
#define <名字> <值>
|
|
注意没有结尾的分号,因为不是C的语句
|
|
名字必须是一个单词,值可以是各种东西
|
|
在C语言的编译器开始编译之前,编译预处理程序(cpp)会把程序中的名字换成值
|
|
完全的文本替换
|
|
gcc --save-temps
|
|
3.宏
|
|
如果一个宏的值中有其他的宏的名字,也是会被替换的
|
|
如果一个宏的值超过一行,最后一行之前的行末需要加\
|
|
宏的值后面出现的注释不会被当作宏的值的一部分
|
|
4.没有值的宏
|
|
#define_DEBUG
|
|
这类宏是用于条件编译的,后面有其他的编译预处理指令来检查这个宏是否已经被定义过了
|
|
5.预定义的宏
|
|
__LINE__ //当前行号
|
|
__FILE__ //当前文件名
|
|
__DATE__ //当前日期
|
|
__TIME__ //当前时间
|
|
__STDC__ //如果编译器遵循ANSI C,其值为1
|
|
*/
|
|
|
|
#define PI 3.1415926
|
|
|
|
int main()
|
|
{
|
|
// 设置控制台编码为UTF-8
|
|
#ifdef _WIN32
|
|
system("chcp 65001 > nul"); // 设置控制台编码为UTF-8
|
|
SetConsoleOutputCP(65001); // 设置控制台输出编码
|
|
SetConsoleCP(65001); // 设置控制台输入编码
|
|
#endif
|
|
|
|
printf("%f\n", 2*PI*3.0);
|
|
|
|
return 0;
|
|
} |