Tag: header

C头问题:#include和“未定义引用”

好吧,我一直在尝试使用这个时间最长,我似乎无法让它正常工作。 我有三个文件, main.c , hello_world.c和hello_world.h 。 无论出于什么原因,他们似乎没有很好地编译,我真的无法弄清楚为什么…… 这是我的源文件。 首先hello_world.c: #include #include “hello_world.h” int hello_world(void) { printf(“Hello, Stack Overflow!\n”); return 0; } 然后hello_world.h,简单: int hello_world(void); 最后是main.c: #include “hello_world.h” int main() { hello_world(); return 0; } 当我把它放入GCC时,这就是我得到的: cc main.c -o main /tmp/ccSRLvFl.o:在函数`main’中: main.c :(。text + 0x5):未定义引用`hello_world’ collect2:ld返回1退出状态 make:*** [main]错误1 有人能帮帮我吗? 我真的坚持这个,但我99%肯定这是一个非常简单的修复。

从一个标头转换为另一个标头中的结构

我遇到了麻烦…我有这个标题: #ifndef PESSOA_H #define PESSOA_H typedef struct pa{ int idade; int atend; }pessoa; void inicPessoa(pessoa *ps, int id); #endif 并且,在filaC.h中: #ifndef FILAC_H #define FILAC_H #include “pessoa.h” typedef struct pessoa elem_t; typedef struct no{ elem_t info; struct no *prox, *ant; } No; typedef No * Fila; #endif 但是编译器说filaC.h上的fiel信息有一个不完整的类型。 改变elem_t info; 将struct elem_t into; 没有效果。

在每个源文件中包含一个头文件

假设您有100个源文件(.c或.cpp)文件,并且您希望在每个文件中包含一些定义,函数/变量声明。 通常在C / C ++中,您使用头文件来实现此目的。 但在这种情况下,您需要在每个源文件中放入#include“header.h”。 现在我的问题是,有没有办法为所有文件包含一个标题而不在每个文件中放入#include“header.h”,因为编写#include“header.h”为100s是非常烦人的源文件。

示例makefile,用于在标头更改时构建简单的c项目重新编译

有没有人有一个完整的makefile可以执行以下操作: 如果HEADER文件发生更改,则重建项目 cpp文件列在makefile中 头文件未在makefile中列出 允许头文件具有与cpp文件不同的名称 某些cpp文件没有头文件 我已经看到了如何使make工具找出标头依赖关系的说明,但这些指令都没有提供任何与工作示例类似的东西。 一个简单的例子如下:main.cpp C1.cpp C1.h C2.cpp C2.h

函数原型和函数实现签名是否可以使用const不一致?

我喜欢在可能的情况下将值参数声明为const ,并且通过搜索SO,我发现这并不太常见 。 像这样: int add(const int a, const int b) { … } 但我想知道: const for values是我的函数的实现细节,而不是它的接口的一部分。 因此将它放入原型似乎是不必要的。 上述函数的原型似乎工作得很好: int add(int a, int b); 然而,我听说过一些问题,例如将main函数的argc声明为const会导致问题: int main(const int argc, const char* const argv[]) 那么这是否意味着int add(int a, int b)和int add(const int a, const int b)毕竟不相同? 如果技术上没问题,我应该做些什么? 我也可以在原型中省略变量名,但我没有,所以也许我不应该省掉const ?

C / C ++编译器如何在头文件中找到原型的定义?

当我在头文件中声明一个函数,并将该函数的定义放在其他文件中时,编译器/链接器如何找到定义? 它是否系统地搜索其路径中的每个文件,还是有更优雅的解决方案? 这一天一直困扰着我,我一直无法找到解释。

在C ++程序中包含C头

我有一个C ++程序(.cpp),我希望在其中使用C头文件中存在的一些函数,如stdio.h,conio.h,stdlib.h,graphics.h,devices.h等。 我可以在我的cpp文件中包含stdio.h库: #include 。 如何包含其他库文件? 如何添加graphics.h库? 我正在使用Microsoft Visual Studio 6.0企业版和Turbo C ++ 3.0。