C Primer Plus--C预处理器和C库(2)】的更多相关文章

目录 预处理符号 明显常量 #define 编译程序之前,先由预处理器检查程序(因此称为预处理器).根据程序中使用的预处理器指令,预处理用符号缩略语所代表的内容替换程序中的缩略语. 预处理器可以根据你的请求包含其他文件,还可以让编译器处理哪些代码.预处理器不能理解C,它一般是接受一些文本并将其转换成其他文本.-- (C Primer Plus中文第五版) graph TD; 写好的C文件 --> 编译器翻译,为预处理做准备 编译器翻译,为预处理做准备 --> 预处理器寻找肯能存在的预处理指令,…
编译程序前,先由预处理器检查程序(因此称为预处理器).根据程序中使用的预处理器指令,预处理器用符号缩略语所代表的内容替换程序中的缩略语. 预处理器不能理解C,它一般是接受一些文件并将其转换成其他文本. 翻译程序的第一步 对程序作预处理前,编译器会对它进行几次翻译处理. 编译器首先把源代码中出现的字符映射到源字符集(?).该过程处理多字节字符和使C外观更加国际化的三元字符(?)扩展 编译器查找反斜线(\)后紧跟换行符的实例并删除这些实例.注意:在这种场合下,“换行符”代表按下回车键在源代码文件中新…
目录 #include指令 头文件 其他指令 #undef 条件编译 内联函数 #include指令 #include <头文件.h>//在标准系统目录中寻找头文件 #include "头文件.h"//先在当前目录下面寻找头文件,然后在标准系统目录下寻找头文件 预处理器在碰到#inclide指令时,就会将后面附加的头文件的内容包含到当前文件中. 头文件 后缀为.h的文件是头文件.这类文件经常包含预处理器所需要的语句. 头文件内容最常见形式包括: 明显常量 宏函数 函数声明…
#define #include #undef #ifdef #else #endif #if #elif #else #endif 预处理宏: p463 _ _fun_ _是预定义标识符(函数作用域),不是宏(文件作用域) #line --重置_ _LINE_ _和_ _FILE_ _宏报告的行号和文件名 #error #pragma --将编译器指令置于源代码中 内联函数 inline --减少执行的时间 函数库 .数学库 略... exit() atexit() exit()执行了atex…
/*------------------------------------------------- varargs.c -- use variable number of arguments -------------------------------------------------*/ #include <stdio.h> #include <stdarg.h> double sum(int, ...); int main() { double s, t; s = su…
/*----------------------------------------- mems.c -- 使用 memcpy() 和 memmove() -----------------------------------------*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE 10 void show_array(const int ar[], int n);…
/*---------------------------------------- qsorter.c -- 用 qsort() 排序一组数字 ----------------------------------------*/ #include <stdio.h> #include <stdlib.h> //提供函数 rand() 原型 #define NUM 40 void fillarray(double ar[], int n); void showarray(const…
/*------------------------------------- rect_pol.c -- 把直角坐标转换为极坐标 -------------------------------------*/ #include <stdio.h> #include <math.h> #define RAD_TO_DEG (180 / (4 * atan(1.0))) typedef struct polar_v { double magnitude; double angle;…
/*------------------------------------- predef.c -- 预定义宏和预定义标识符 -------------------------------------*/ #include <stdio.h> void why_me(void); int main() { printf("The file is %s.\n", __FILE__); printf("The data is %s.\n", __DATE_…
/*-------------------------------------- names_st.h -- names_st 结构的头文件 --------------------------------------*/ #ifndef NAMES_ST_H #define NAMES_ST_H #include <string.h> #define SLEN 32 //结构声明 struct names_st { char first[SLEN]; char last[SLEN]; };…