实习C++代码笔记

1.ifndef

#ifndef 是"if not defined"的简写,是预处理功能(宏定义、文件包含、条件编译)当中的条件编译,在实际开发中可以用于做test或者不同版本的不同适配。在vscode中可以通过json脚本的define来定义ifndef 的值,或者在通过gcc编译的时候添加上宏来进行条件编译。
#ifndef 可以根据是否已经定义了一个变量来进行分支选择,其作用是:
–防止头文件的重复包含和编译;
–便于程序的调试和移植;

参考链接:https://blog.csdn.net/weixin_42692164/article/details/113368331

2.size_t数据类型

size_t的说明

定义:size_t是一种数据相关的无符号类型,它被设计得足够大以便能够存储内存中对象的大小。
size_t是标准C库中定义的,应为unsigned int(占用4字节的内存空间),在64位系统中为long unsigned int(占用8字节的内存空间)
它是一种“整型”类型,里面保存的是一个整数,就像int, long那样。这种整数用来记录一个大小(size)。size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。
通常我们用sizeof(XXX)操作,这个操作所得到的结果就是size_t类型。
在需要通过数组下标来访问数组时,通常建议将下标定义size_t类型,因为一般来说在进行下标访问时,下标都是正的。当然,也不是所有的下标访问操作下标都是正的,比如以下代码:
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *ptr = &(a[4]);
cout<<ptr[-2]<<endl;
这段代码中对ptr进行了下标访问,并且下标是负的,但是这个访问并不是错误的,执行的结果是输出3。

size_t的作用

某些情况下正确的使用size_t可以提高程序的可移植性和有效性
参数中带有size_t的函数通常会含有局部变量用来对数组的大小或者索引进行计算,在这种情况下,size_t是个不错的选择。
适当地使用size_t还会使你的代码如同自带文档。当你看到一个对象声明为size_t类型,你马上就知道它代表字节大小或数组索引,而不是错误代码或者是一个普通的算术值。

参考链接:https://blog.csdn.net/sinat_39370511/article/details/91982771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168137452316800213036508%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168137452316800213036508&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-2-91982771-null-null.142^v83^control,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=C%2B%2B%E4%B8%AD%E7%9A%84size_t&spm=1018.2226.3001.4187

猜你喜欢

转载自blog.csdn.net/weixin_45112559/article/details/130133600