gpt4 book ai didi

c - 如何在一个 C 文件中访问指向在一个 C 文件中声明的字符串文字的外部指针?

转载 作者:太空宇宙 更新时间:2023-11-04 07:48:01 24 4
gpt4 key购买 nike

我正在学习 C 语言,我需要一个字符串文字,它是在一个 .c 文件的 main 函数中发现的,以便可以在一个完全不同的 .c 文件。

我尝试过的:我在 header 中将指向字符串文字的指针声明为 extern,在一个 .c 文件中定义它,并尝试在第二个 .c 文件中访问文字。由于第二个(访问)文件中缺少定义,编译失败。

简而言之:

文件1.h :

extern char *global;

文件1.c :

#include "file1.h"

int main() {
//some code
extern char *global = some_struct->data;
//more code
}

file2.c :

#include "file1.h"

int do_stuff() {
//some code
some_function(global);
//more code
}

我希望它能编译,因为 globalfile1.h 中声明,在 file1.c 中定义,并且它的值在文件 2.c。但是,对于 undefined variable ,file2.c 的编译失败。

如果相关,file1.c 中的main 函数始终是程序中运行的第一个函数。

最佳答案

主要

     extern char *global = some_struct->data;

是错误的,如果你想分配 global 做:

     global = some_struct->data;

还有一些在全局范围内你需要定义global :

char *global;

例如 main 变成:

#include "file1.h"

char *global;

int main() {
//some code
global = some_struct->data;
//more code
}

关于c - 如何在一个 C 文件中访问指向在一个 C 文件中声明的字符串文字的外部指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55691946/

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