extern typedef enum
时间: 2023-09-28 10:09:26 浏览: 146
引用中提到,typedef适用于定义新的数据类型或别名,而`#define`适用于定义常量和函数宏等。
对于问题1,根据typedef int * ptr_t;,p1和p2都是指向int类型的指针,因此p1和p2的类型都是int*。
对于问题2,根据#define PTR_T int* PTR_T p1, p2;,PTR_T被定义为int*,因此p1和p2的类型都是int*。
引用提到,在函数的返回值前加上extern可以将函数变为一个外部函数。由于默认情况下函数就是外部函数,因此在开发中一般不需要显式地写extern。
引用给出了一系列的#define定义,其中包括MAX_VERTEX_NUM、INFINITY、EXTERN、OK、ERROR、MAX和MAXW等常量。而typedef用于定义新的数据类型,如定义了Status为int类型、VisitIf为bool类型、VertexType为char类型等。
关于extern typedef enum的问题,根据提供的引用内容,没有明确提到extern typedef enum的定义,因此无法给出具体的答案。请提供更多相关信息以便回答。
相关问题
解释这段代码#ifndef _MENU_H_ #define _MENU_H_ // types of menu typedef enum {MAIN, ADMIN, USER, BUYER, SELLER, INFO, MODIFY, GOOD} Menu; // the number of option for different menus extern const int optionNum[]; /** * @brief a menu is what gives some prompt and gets a user input * * @param type menu type * @return int user input */ int menu(Menu type); #endif
这段代码是一个菜单头文件,它使用了条件编译指令#ifndef、#define和#endif来防止多次包含。
首先,代码定义了一个枚举类型Menu,用于表示不同类型的菜单。枚举值包括MAIN、ADMIN、USER、BUYER、SELLER、INFO、MODIFY和GOOD,分别代表主菜单、管理员菜单、用户菜单、买家菜单、卖家菜单、信息菜单、修改菜单和商品菜单。
然后,代码声明了一个名为optionNum的外部常量数组。这个数组可能是用来存储不同菜单的选项数量。由于这是一个声明,具体的定义可能在其他地方进行。
接下来,代码声明了一个名为menu()的函数原型。该函数接受一个Menu类型的参数type,用于指定菜单类型。函数返回一个整数,表示用户的输入。
最后,代码使用#endif结束了条件编译指令,确保只有当_MENU_H_宏未定义时才会包含这段代码。
需要注意的是,这只是一个头文件,它只提供了一些声明和函数原型,并没有提供具体的实现。具体的实现细节可能在其他地方进行。
c enum 定义全局变量在其他文件调用
在C语言中,`enum` (枚举) 主要是用来声明一组命名常量,它们通常用于表示有限的、离散的值集合。如果你想通过`enum`定义一个全局变量,并使其在整个程序中都可以访问,你需要按照以下步骤操作:
1. **定义枚举**:
在`.h`头文件中,你可以这样定义全局的枚举:
```c
// header_file.h
#ifndef ENUM_HEADER
#define ENUM_HEADER
typedef enum {
GlobalValue1,
GlobalValue2,
GlobalValue3
} GlobalEnumType;
extern GlobalEnumType global_enum_var;
#endif // ENUM_HEADER
```
这里声明了名为`GlobalEnumType`的枚举,并定义了一个外部全局变量`global_enum_var`。
2. **声明枚举类型**:
只需要包含这个头文件,在不需要实际定义枚举值的地方,只需要声明该类型即可:
```c
// another_file.c
#include "header_file.h"
```
3. **定义并初始化全局变量**:
在某个源文件(如`main.c`)中,你需要提供枚举变量的初始值和定义:
```c
// main.c
#include "header_file.h"
int main() {
// 初始化全局枚举变量
global_enum_var = GlobalValue1;
// 现在可以在函数间使用global_enum_var
printf("The current value is %d\n", global_enum_var);
return 0;
}
```
现在,你可以在整个项目的不同文件中通过`GlobalEnumType`来引用和修改这个全局枚举变量了。注意,为了保持代码的一致性,建议在所有相关的源文件中都包含`header_file.h`,以便获取枚举类型的信息。
阅读全文