C++中如何引用第三方库
C++中如何引用第三方库?动态链接库和静态链接库在 C++中通常有两种链接 library:动态链接库(Dynamic Link Library,DLL)和静态链接库(Static Link Library,LIB)
动态链接库:在程序运行时通过链接器加载动态链接库,根据程序运行需要动态的链接需要的库中的数据。在 Linux 中,动态链接库通常以 .so 为扩展名(Shared Object),通常命名方式是lib.so.。
静态链接库:在编译链接阶段,静态链接库中的代码会被复制到 bin 中,因此编译的 bin 中是包含了静态链接库的代码的。在 Linux 中静态链接库通常以 .a 为扩展名(archive),通常命名位 lib.a。
引用库在使用第三方库时通常需要两个步骤:
在调用的文件中声明包含头文件,即:#include ""
在编译时链接库文件:
1g++ main.cpp -I/path/library/include -L/path/library -lexample_lib
-I 指定引用的头文件的路径-L 指定第三方库文件所在路径-l 指定 ...
C++函数返回值为引用类型
C++中函数返回值为引用类型有什么作用?函数返回值是引用类型主要三个场景:
函数返回值是一个很大的数据结构,避免拷贝开销;
实现函数的链式赋值操作,此时函数需要作为一个左值,经典的例子有:
std::cout << "hello, world" << std::endl;实际上执行的代码逻辑是: std::cout.operator<<("hello, world").operator<<(std::endl);
operator[]:当随机访问运算符需要实现赋值功能是,函数也需要是一个左值,因此函数需要返回引用类型;
1234567891011vector<int>& addElement(vector<int>& vec, int value) { vec.push_back(value); return vec;}int main() { vector<int> numbers; ...
C++中的整数类型
题目int,long,long long在 32 位 ,64 位和 64 位下跑 32 位虚拟机的大小
一般来说在 32 位系统上:int 通常为 4 字节(32位),long 通常为 4 字节(32 位),long long 通常为 8 字节(64 位)
在 64 位系统上:int 通常位 4 字节(32 位),long 通常为 8 字节(64 位),long long通常为8 字节(64 位)
并且大小只和系统位数有关,所以在虚拟机下也就只和虚拟机的操作系统有关所以在64 位下跑 32 位虚拟机和 32 位系统是一致的。
解释通常查询 C++20 ISO 14882 可以看到在 6.8.2 有关于基本类型的描述:
有五种标准signed integer type:
signed char
short int
int
long int
Long long int
并且按这个list 的顺序每种类型都至少要有和前面的类型一样多的空间。
另外还有一些 impl 定义的扩展 signed integer type,与标准 signed integer type 统称为 signed ...


