gpt4 book ai didi

c - 全局字符指针(C 编程)

转载 作者:太空狗 更新时间:2023-10-29 15:21:38 25 4
gpt4 key购买 nike

我刚刚开始通过创建小程序来学习 C 语言。

现在,我正在创建一个需要结构或全局的程序,因为稍后在我的函数中的某个地方我只想直接调用它们。

我宁愿不使用struct,因为我怕它会增加seg的机会。代码行之间的某处错误。

我的问题是:这两个是一样的吗?

struct myTrialStruct{
char *trialOne;
char *trialTwo;
char *trialThree;
};

extern char *trialOne;
extern char *trialTwo;
extern char *trialThree;

char *trialOne;
char *trialTwo;
char *trialThree;

如果没有,有人可以告诉我创建全局字符指针的正确方法,而无需我创建struct吗?

最佳答案

如果您有一个编译单元,那么将这些声明放在任何函数之外就足够了。

char *trialOne;
char *trialTwo;
char *trialThree;

如果您打算有多个编译单元访问这些指针,那么您应该将这些声明放在 header 中

extern char *trialOne;
extern char *trialTwo;
extern char *trialThree;

并在一些模块中放置这些指针的定义

char *trialOne;
char *trialTwo;
char *trialThree;

头文件应该包含在任何需要访问这些指针的编译单元中。

关于你的问题

Are these two the same?

然后这些

struct myTrialStruct{
char *trialOne;
char *trialTwo;
char *trialThree;
};

一个类型声明,它是一个结构声明,没有创建对象。

虽然这些是对象声明

char *trialOne;
char *trialTwo;
char *trialThree;

您可以定义结构类型的对象,例如以下方式

struct myTrialStruct{
char *trialOne;
char *trialTwo;
char *trialThree;
};

struct myTrialStruct hlobal_pointers;

关于c - 全局字符指针(C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33426189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com