- 博客(6)
- 收藏
- 关注
原创 extern int a的理解
int a = 0;在一个源文件中引用另一个源文件中定义的全局变量或函数,但是不想包含另一个源文件的头文件,那么你就需要在当前源文件中使用extern关键字,表示这些变量或函数是在其他地方定义的,需要编译器去寻找。3. 当你想在C++程序中引用C语言编写的库或DLL中的变量或函数,那么你就需要在C++程序中使用extern "C"关键字,表示这些变量或函数是按照C语言的方式编译和链接的,需要编译器去寻找。在某个头文件中用extern对变量做全局声明,在对应的全局位置定义一次,你就可以在其他文件中使用它了。
2023-08-10 09:52:26
430
1
原创 #ifdef __cplusplus extern “C“ { #endif //一段代码 #ifdef __cplusplus } #endif
在编译生成的汇编码中,要对函数的名字进行一些处理,加入比如函数的返回类型等等.而在C中,只是简单的函数名字而已,不会加入其他的信息.也就是说:C++和C对产生的函数名字的处理是不一样的.之父在设计C++之时,考虑到当时已经存在了大量的C代码,为了支持原来的C代码和已经写好C库,需要在C++中尽可能的支持C,而extern "C"就是其中的一个策略。这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且底层的库也是C语言写的,为了更好的支持原来的和已经写好的C代码。
2023-08-10 09:51:34
160
1
原创 关于#ifndef __LED_H#define __LED_H……(头文件内容) #endif的理解
这样,可以避免头文件的内容被重复定义。(比如我们在B文件中include A和C文件,但是A文件自己可能就include C文件了呢!所以#define __LED_H和#endif 中间的头文件内容就被执行,也就是头文件内容被定义。大致意思就是如果后面的东西(此处指__LED_H)没有定义,那么就执行后面的define命令了。不用下划线也可以,用几个下划线也由个人习惯。中间的头文件内容,也就是不会重复定义头文件内容。已经被第一次引用时定义了,所以不会执行。(#ifndef可以理解为——
2023-08-10 09:50:52
647
1
原创 c和.h文件区别及联系
以一个简单的例子来说明.h文件和.c文件的关系。假设我们有一个包含加法和减法函数的计算器程序,其中加法和减法函数分别定义在addition.c和subtraction.c两个文件中。这时我们可以将这两个函数的声明放在calculator.h文件中.因此,.c文件和.h文件是相互关联的。通常,每个.c文件都对应一个.h文件,共同构建了一个完整的程序。.c文件则包含了函数的实现和变量的定义等内容。3. 在mian.c 或其他文件中导入.h 使用定义好的函数。程序的接口部分,其中包含了函数的声明和结构体的定义。
2023-08-10 09:49:50
1705
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人