C/C++ 部分
1. pragma once 跟 ifndef 的区别
2. 变量或者函数在连接的时候被多处定义的问题
描述:如有文件head.hpp, test.cpp, main.cpp
//File haed.hpp
#include<string>
void foo()
{
}
std::string testStr="abc";
const std::string constStr="js";
void test();
#endif
//File test.cpp
#include"head.hpp"
void test()
{
}
//File main.cpp
#include"head.hpp"
int main()
{
}
问题是分别编译test.cpp跟main.cpp生产.o目标文件没问题,链接test.o main.o生成最终的可执行文件时候foo函数在多处定义, string testStr也在多处定义,为啥const的constStr没有问题呢?