头文件

头文件用于声明而不是用于定义


extern int val = 10;   虽然val声明为extern,但是有初始化值,所以这句话代表一个定义

double fica_rate;  没有extern,代表定义


因为头文件包含在多个源文件中,所以不应该含有变量和函数的定义


请看下面的例子:

demo.h

#ifndef _DEMO_H
#define _DEMO_H
int counter;

int test()
{
	return 0;
}
#endif

demo.cpp

#include "demo1.h"

//什么都没有


source.cpp

#include <string>
#include <iostream>
#include "demo1.h"
using namespace std;
int main()
{
    
}


1>Source.obj : error LNK2005: "int __cdecl test(void)" (?test@@YAHXZ) already defined in demo1.obj
1>Source.obj : error LNK2005: "int counter" (?counter@@3HA) already defined in demo1.obj


报错 重定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值