CMake命令汇总 / add_custom_command
add_custom_target / add_definitions / add_dependencies
add_library / add_subdirectory / add_test / aux_source_directory / break
CMake命令汇总 / add_custom_command
add_custom_target / add_definitions / add_dependencies
add_library / add_subdirectory / add_test / aux_source_directory / break
在声明函数形参时,作为类型分类的数组,可以被解读成指针。
void func(int a[]) { }
可以被自动地解读为
void func(int *a) { }
【要点】
只有在声明函数形参的情况下,int a[] 和 int *a 才具有相同的意义。
make
是一个命令,用来解析 makefile
文件;makefile
是一个文件,用来告诉 make
命令,如何编译整个工程,生成可执行文件。
Automake
Automake是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。每个 Makefile.am 基本上是一系列 make 的宏定义 (make规则也会偶尔出现)。生成的 Makefile.in 服从 GNU Makefile 标准。GNU Makefile 标准文档长、复杂,而且会发生改变。Automake 的目的就是解除个人GNU维护者维护 Makefile 的负担 (并且让Automake的维护者来承担这个负担)。
strdup() 不是标准的 C 函数。strdup() 在内部调用了 malloc() 为变量分配内存,不需要使用返回的字符串时,需要用 free() 释放相应的内存空间,否则会造成内存泄漏。
epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目非常大,与旧的 select 和 poll 系统调用完成操作所需 O(n) 不同, epoll能在O(1)时间内完成操作,所以性能相当高),epoll 与 FreeBSD的kqueue类似,都向用户空间提供了自己的文件描述符来进行操作。
MAKE_STD_ZVAL(zv) 宏替换后:
(zv) = (zval *) emalloc(sizeof(zval)); (zv)->refcount__gc = 1; (zv)->is_ref__gc = 0;
结构体类型变量的定义
在定义结构体类型变量之前,首先需要设计结构体,定义结构体的名称和成员的数据类型,然后使用结构体说明变量,这时结构体就成为了一种新的数据结构。定义结构体使用修饰符 struct,它一般形式为:
struct 结构体名 {
数据类型 成员名1;
数据类型 成员名2;
数据类型 成员名3;
};
常用 头文件 及 包含函数
C 语言有如下 3 种作用域。
1、全局变量
2、文件内部的静态变量
3、局部变量