合集-c语言
摘要:# 1、可变参数函数定义 必需显式定义至少一个参数,不能直接定义`...`。 ```c LOCAL void reset_param(guint num, ...) {} ``` 一般来说,第一个参数传入可变参数的个数。 # 2、可变参数的使用 需要用到`stdarg.h`中的1个结构体和3个宏定义
阅读全文
摘要:使用宏变量`__VA_ARGS__`可以将省略号直接传递给另一个函数。 如下: ```c #define println(fmt, ...) \ printf(fmt, __VA_ARGS__);\ printf("\n"); ```
阅读全文
摘要:extern "C"的主要作用是告诉C++编译器使用C语言的链接规则来编译指定的代码。 在C++中,由于支持函数重载,编译器在编译函数时会将函数的参数类型等信息加入到函数名中,而C语言不支持函数重载,编译C语言代码的函数时通常只包含函数名,不加入参数类型。因此,当C++代码需要调用C语言编写的函数时
阅读全文
摘要:1、不接收命令行参数 int main(void) {/*...*/} c程序是由系统调用的,main函数返回值代表c程序的执行结果。0代表执行成功,其他值代表执行失败。 2、接收命令行参数 int main(int argc, char *argv[]) {/*...*/} argc表示命令行参数
阅读全文
摘要:extern关键字的作用就是告诉编译器,去别的地方找这个函数或者变量的定义。 1、引用另一个文件中的变量 main.c #include<stdio.h> int main() { extern int num; printf("%d",num); return 0; } b.c #include<
阅读全文
摘要:#if #if condition 根据condition的值决定是否编译代码 condition中只能有宏和常量 #ifdef 判断宏是否定义,不推荐使用,这是为了兼容以前的写法 #if defined 判断宏是否定义,推荐使用
阅读全文
摘要:1、inet_pton #include <arpa/inet.h> int inet_pton(int af, const char *restrict src, void *restrict dst); 将IPv4和IPv6地址从文本转为二进制。(网络字节序) af参数有以下取值: AF_INE
阅读全文
摘要:低地址存低位就是小端 低地址存高位就是大端 网络字节序就是大端(TCP/IP)
阅读全文
摘要:1、定义 #include <linux/prctl.h> /* Definition of PR_* constants */ #include <sys/prctl.h> int prctl(int op, ...); 基本的线程、进程管理函数。第一个参数决定了进行什么样的操作。 2、具体操作
阅读全文
摘要:1、定义时顺序赋值 struct InitMember test = {-10,3.141590,"method one",0.25}; 不能乱序 2、定义时乱序赋值(C风格) struct InitMember test = { .second = 3.141590, .third = "meth
阅读全文
摘要:volatile是一个C/C++关键字,它用于告诉编译器当前变量是易变的,需要在每次使用时都从内存中重新获取值,而不是使用缓存中的旧值。 一般来说,对于定义在函数中的自动变量,编译器会尽量利用寄存器来提高访问速度,这样就会使得该变量的值可能被缓存起来,不一定会立即被写入内存。如果这时候要访问这个变量
阅读全文