全局函数与全局变量 多次使用、引用

1、   头文件中全局函数多次引用出现重定义的问题

  如果一个函数在头文件中声明实现,那么在被多次使用、引用时就会产生重定义的问题。

解决方法:

方法1:不要在头文件中实现函数,而将声明和实现分别写在.h和.cpp中。

方法2:如果一定要在头文件中实现函数,请在.h中实现的函数加上static。

如下:

#ifndef A_H
#define A_H
 
#include "stdio.h"
static void func()
{
    printf("hello world
");
}
#endif

2、当全局变量被多个类体或者cpp 使用时,也会出现重定义问题

解决方法:

将声明和定义分别写在.h和.cpp中,在声明时前面加extern。

 如下:

extern char g_szBuffer[];   // .h 文件中

char g_szBuffer[100];     //.cpp 文件中
原文地址:https://www.cnblogs.com/lovebay/p/15009386.html