随笔分类 -  c语言

摘要:记录下指针函数的使用: typedef int (p*)(int ,int); int add(int a, int b){ printf("%\n", a+b); } int main() { p add_; add_ = add; int ret = add_(1,2); return 0; } 阅读全文
posted @ 2023-06-05 23:15 嵌入式小白— 阅读(16) 评论(0) 推荐(0) 编辑
摘要:指针: 程序中的变量实际是存储空间的别名。,通常以 *+ 变量名的形式组成。 变量名: 存储参数的地址。 * :类似钥匙一样,作为打开存储内存的地址,并取出存储参数的值。 int i = 1; int *p = &i; // p &i, *p 1 指针变量虽然是指向变量存储的空间地址,其本质还是变量 阅读全文
posted @ 2023-04-05 23:55 嵌入式小白— 阅读(31) 评论(0) 推荐(0) 编辑
摘要:目前#error和#line很少被使用,但是也可以作为定位问题原因的工具 #error 用于生成一个编译错误的信息。用于自定义程序员特有的编译错误信息。在预处理时起作用。 #error message // message 打印的编译error信息,不需要双引号包围#warning message 阅读全文
posted @ 2023-04-05 23:23 嵌入式小白— 阅读(19) 评论(0) 推荐(0) 编辑
摘要:条件编译类似C语言 “ if .....else.... ”,从大量代码中,通过预处理的方式对代码进行预删除的工作 条件编译本质是对代码进行选择性的预处理操作后的编译操作,只对符合要求的代码进行编译 /* 通常采用 #ifdef ..... #else(#elif) ...... #endif 表示 阅读全文
posted @ 2023-04-03 01:03 嵌入式小白— 阅读(38) 评论(0) 推荐(0) 编辑
摘要:宏定义与分析: 我们都数值宏定义通过define来定义。#define 定义的变量区别于const等定义变量的方式,其本质时字面量,并不会占用内存空间。 define定义的函数: define 定义的函数比常规函数定义更加强大,也方便。 #define sum(a, b) (a)+(b) #defi 阅读全文
posted @ 2023-04-02 23:17 嵌入式小白— 阅读(178) 评论(0) 推荐(0) 编辑
摘要:结构体的声明: struct 结构名 { 类型 变量名; 类型 变量名; ... } ; 结构体的定义: 1. struct 结构体名 结构变量名 // 这种结构体定义用于同一结构体不同对象的情况。 struct name xiaoming; struct name xiaohong; 2. // 阅读全文
posted @ 2023-03-25 22:17 嵌入式小白— 阅读(81) 评论(0) 推荐(0) 编辑
摘要:incomplete type is not allowed 出现的几种类型: 使用extern 引用结构体时,1. 没有在文件中添加 结构体定义的头文件“.h”。2. 结构体采用先声明后定义的方式,这种extern是不允许这么操作的。采用typedef struct {}str;这种方式。 出现这 阅读全文
posted @ 2023-03-25 21:13 嵌入式小白— 阅读(1727) 评论(0) 推荐(0) 编辑
摘要:引用: https://www.cnblogs.com/sky-heaven/p/4137770.html 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上 阅读全文
posted @ 2023-03-25 19:56 嵌入式小白— 阅读(48) 评论(0) 推荐(0) 编辑
摘要:引用:https://www.yii666.com/article/519100.html 函数或参数无非三种表达形式:声明、定义、引用。 如果没有定义,只有声明和调用:编译时会报连接错误。undefined reference to `func_in_a' 如果没有声明,只有定义和调用:编译时一般 阅读全文
posted @ 2023-03-25 16:19 嵌入式小白— 阅读(1385) 评论(0) 推荐(0) 编辑