c - 在头文件中声明一个指针
问题描述
我需要能够在许多文件中使用指向变量的指针。
我发现我可以在其中一个头文件中声明指针,然后使用来自不同 .c 文件的变量和一个简单的“extern”声明。不幸的是,这不起作用——程序无法编译。但是,如果我翻转顺序(指针作为标头中的外部指针),一切都编译得很好。
我不明白为什么会这样。指针毕竟只是一个变量。我将不胜感激任何提示。
这不起作用:
文件1.h
int* int_ptr;
文件2.c
#include "file1.h"
extern int* int_ptr;
int_ptr = malloc(sizeof(int));
*int_ptr = 231;
文件3.c
#include "file1.h"
int heap_int;
heap_int = *int_ptr
但以下确实编译:
文件1.h
extern int* int_ptr;
文件2.c
#include "file1.h"
int* int_ptr;
int_ptr = malloc(sizeof(int));
*int_ptr = 231;
文件3.c
#include "file1.h"
int heap_int;
heap_int = *int_ptr
解决方案
推荐阅读
- sql - 生成行号而不对任何列进行排序
- vue.js - Vue v-model输入更改移动chrome不起作用
- omnet++ - 在 Omnet++ 中通过 AP 将无线主机连接到标准主机
- jquery - 很多 Div 需要从绿色变为白色,从白色变为红色
- android - Android SDK 中缺少 AAPT2
- java - 退出android中的活动后重新加载片段
- javascript - 在单击下拉菜单中的链接时调用 javascript 函数时输入错误意外结束
- c# - OpenQA.Selenium.ElementNotInteractableException:无法点击元素
- node.js - 如何正确地将 http 请求包装在路由表达处理器中并推断出 HTML 中的答案?
- python - 我的程序有错误,无法找出它不起作用的原因