![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++基础
文章平均质量分 62
yao00037
7年干到了底层软件工程师
展开
-
声明、定义和extern
我们知道在预编译的时候会展开它所包含的头文件的内容。所以当多个文件都#include了这个.h文件,会导致.h中定义的全局变量多次定义(重复定义)编译器可能会报错。编译器会给该变量分配内存,并且还可以将内容初始化为某个值。原创 2023-02-07 09:22:09 · 339 阅读 · 0 评论 -
预编译、编译、汇编、链接
0 前提0.1 4个过程预处理(preprocessing) ----------------- gcc -E编译(compilation) ------------------ gcc -S汇编(assembly) -------------------- as连接(linking) --------------------- ld0.2 gcc指令-o:指定生成的输出文件;-E:仅执行编译预处理;-S:将C代码转换为汇编代码-wall:显示警告信息;-c:仅执行编译操作,不进行链原创 2021-09-07 20:17:10 · 1618 阅读 · 0 评论 -
extern “C“ 的作用
1. 为什么会有extern Cextern C 解决了C和C++不能相互调用的问题。通过查看C和C++编译生成的动态/静态库。可以看出其翻译的规则不一样,所以在跨语言的函数调用的时候,不能成功的找到想要调用的函数名称。所以我们要通过一种方式,让他们使用同一种翻译规则,这样就能找到想要的函数了。于是出现了extern C。2. 该怎么样使用extern “C”通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明#include <stdint.h>原创 2021-09-03 23:45:36 · 107 阅读 · 0 评论 -
C基础-表达式求值
http://blog.timd.cn/evaluation-order/原创 2021-08-19 21:29:08 · 233 阅读 · 1 评论