volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域
1.volatile:
要求参数修改每次都从内存中的读取。这种情况要比普通运行的变量需要的时间长。
当设置了成按照C99标准运行之后,使用volatile变量之后的程序运行的时间将比register的长。
因为volatile是强制程序中内存中读取数据,所以可以通过修改内存中的这个参数来不断改变传入到cpu里的这个值。
2.可变参数
再如,字符串类型的可变参数
当程序运行之后,会出现计算器,笔记本,打印出已经开启的线程。
3.void *memset(void *s,int ch,size_t n);
A:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快的方法。
B:需要的头文件
<memory.h>or <string.h> memset
<wchar.h>wmemset
关于strcpy()函数
memset
4.内联函数
5.宽字符,窄字符,国际化
国际化
6.include
#undef限定作用域
去掉#undef后:
7.条件编译(#if #else #endif),这种只是处理两种
8.#if #elif #endif的使用
9.通过#define MM作为一个开关,控制开启或者关闭某段程序
10. #ifndef,#endif
11. define中#号的作用
12.define中##号的作用
13.define中多条语句拼接
14.优先级
15.打印long long处理非常大的数据使用(lld):
long long data = 11234567890;//sizeof(longlong)
printf("%lld", data);//打印longlong 处理非常大的数据
下面输出的时候的执行顺序是从右向左执行。
16.关于文件缓冲
17.位域(通过这种方式有时候可以用于节约内存)