在linux下写一个c语言的头文件.h,其中有一个结构体变量是引用另外一个C++的.h文件中定义的枚举变量,使用extern c使得能够编译通过这个.c文件
时间: 2024-02-27 18:53:35 浏览: 131
可以按照以下步骤编写头文件:
1. 在头文件中包含需要引用的C++头文件,并使用extern "C"包裹起来,表示使用C语言的编译方式。
```c
#ifdef __cplusplus
extern "C" {
#endif
#include "other_cpp_header.h"
typedef struct {
enum Color color;
int size;
} MyStruct;
#ifdef __cplusplus
}
#endif
```
2. 在C++头文件中定义枚举变量:
```cpp
// other_cpp_header.h
enum Color {
RED,
GREEN,
BLUE
};
```
3. 在C文件中包含上述头文件,然后使用MyStruct结构体变量即可:
```c
#include "my_header.h"
int main() {
MyStruct s;
s.color = RED;
s.size = 10;
return 0;
}
```
编译时需要先将C++头文件编译成目标文件,然后再将C文件和目标文件链接起来:
```bash
g++ -c other_cpp_header.h -o other_cpp_header.o
gcc main.c other_cpp_header.o -o main
```
相关问题
头文件源文件可执行文件
这三个概念都是计算机程序开发中的重要组成部分。
头文件是一种包含函数声明、宏定义、结构体定义等信息的文件,通常用于在多个源文件中共享代码。头文件的扩展名通常为.h。
源文件是包含实际代码的文件,通常用于定义函数、变量等。源文件的扩展名通常为.c(C语言)或.cpp(C++语言)。
可执行文件是经过编译、链接后生成的可以直接运行的程序文件,通常具有扩展名.exe(Windows系统)或.out(Linux/Unix系统)。
阅读全文
相关推荐

















