【问题标题】:Including header files in Visual Studio 2012在 Visual Studio 2012 中包含头文件
【发布时间】:2014-06-28 19:41:27
【问题描述】:

我在使用 Visual Studio 2012 时遇到问题

我想在另一个中包含一个头文件,然后在 .c 文件中包含第二个头文件。 我想在第一个头文件中定义一个常量并在 c 文件中使用它的值。 我认为这是可能的,因为它是在标准库中完成的

当我这样做时,编译器会发送一条错误消息:

1>C:\Users\sotfware\Desktop\ConsoleApplication4\Debug\ConsoleApplication4.exe:致命错误 LNK1169:找到一个或多个多重定义符号

【问题讨论】:

    标签: c visual-studio-2012


    【解决方案1】:

    我觉得还可以。也许您可以显示有关您的问题的更多详细信息。


    第一个标题(a.h):

    #ifndef A_H
    #define A_H
    
    const int i = 5;
    
    #endif
    

    第二个标题(b.h):

    #ifndef B_H
    #define B_H
    
    #include "a.h"
    
    #endif
    

    源文件:

    #include <stdio.h>
    #include "b.h"
    
    main() {
      printf("%d\n", i);
      exit(0);
    }
    

    【讨论】:

      【解决方案2】:

      将函数的定义(主体)放在常规 C 文件中,仅将声明放在头文件中。假设我有这些功能:

      void PrintHelloWorld(void)
      {
            printf("Hello World\n");
      }
      
      void PrintHelloWorld2(void)
      {
            printf("Hello World");
      }
      

      然后我的 C 文件会保持这个 ^^ 但头文件应该是:

      void PrintHelloWorld();
      void PrintHelloWorld2();
      

      我记得,我认为你应该在头文件中声明这个常量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多