C项目中变量、宏定义、结构体等声明定义位置问题(头文件、源文件)

以前还是项目接触的少了,这些基本功不扎实。

目录

一、变量

二、源文件前加一个自己文件名的宏定义现象

三、函数声明时前面加不加extern

四、宏定义、结构体、typedef定义等位置


一、变量

一个全局变量到底是定义在头文件中,还是定义在源文件中?

结论:应该定义在.c文件中,不能.h文件中。如果定义在.h文件中,在链接的时候会报变量重复定义错误。

例如:有main.c、myadd.h、myadd.c三个文件,在myadd.h中定义了一个全局变量int a = 10,声明了一个函数myadd;在myadd.c中包含了头文件myadd.h,定义了函数myadd;main.c中包含了头文件myadd.h,调用了函数myadd。代码如下:

//myadd.h
#ifndef _MYADD_H
#define _MYADD_H

int a = 10;

int myadd(int b);

#endif

//myadd.c,一个求和全局变量a相加和的函数
#include "myadd.h"

int myadd(int b)
{
	return a+b;
}
  • 24
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值