C\C++
文章平均质量分 74
与C、C++语言相关内容。
雪靡
ACMer一名。
Github地址:https://github.com/nayaku
展开
-
结构化绑定声明(c++ 17)
绑定指定名称到初始化器的子对象或元素。原创 2022-10-22 18:33:06 · 441 阅读 · 0 评论 -
0,0.0,‘0‘,“0“占字节数量
0为int类型,占4字节。0.0为double类型,占8字节。'0’为char类型,占1字节。"0"为字符串,为char类型数组,有两个元素(“0\0”)占用1*2=2字节。补充:在x86上,指针为4字节。在x64上,指针为8字节。可以使用sizeof(void*)来查看。...原创 2020-12-20 17:06:18 · 6472 阅读 · 0 评论 -
C++ Windows库函数末尾添加“A”和“W”的意义
Windows API函数对字符处理有3种格式:Windows一般代码格式(Windows code page),用A来指代ANSI。Unicode格式,用W来指代宽字符(Wide)。通常大部分版本均会编译为Windows一般代码格式或者Unicode格式。一些最新的方法只有Unicode版本。更多信息请参考函数原型的约定.以ModifyMenu(...)函数为例,其宏定义如下:#ifdef UNICODE#define ModifyMenu ModifyMenuW#else#def原创 2020-12-04 20:42:04 · 1956 阅读 · 0 评论 -
c语言的If与Switch效率比较
最近看到文章1表示Switch比If慢,这里就来测试一下是否属实。立刻打开VS,编写以下代码:#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX_LOOP 100000000int nums[5];void switchFunc(){ int i, r; srand((unsigned)time(NULL)); for (i = 0; i < MAX_LOOP; i++)原创 2021-08-18 14:51:05 · 1837 阅读 · 1 评论 -
《华为C&C++语言安全规范》笔记
《华为C&C++语言安全规范》笔记通过阅读《华为C&C++语言安全规范》1,我了解到了我在编程中很多缺失的部分。现在记录下几个要点:规则1.1.4:严禁对指针变量进行sizeof操作编码人员往往由于粗心,将指针当做数组进行sizeof操作,导致实际的执行结果与预期不符。 下面的代码,buffer和path分别是指针和数组,编码人员想对这2个内存进行清0操作,但由于编码人员的疏忽,第5行代码,将内存大小误写成了sizeof,与预期不符。如果要判断当前的指针类型大小,请使用sizeof原创 2021-06-10 09:22:26 · 8229 阅读 · 1 评论 -
C\C++ 面试的难点与易错点(第一天)
定义一个空类型,里面没有任何成员变量和成员函数,对其求sizeof,得到的结果为?答案:1。解释:实际上,这是类结构体实例化的原因,空的类或结构体同样可以被实例化,如果定义对空的类或者结构体取sizeof()的值为0,那么该空的类或结构体实例化出很多实例时,在内存地址上就不能区分该类实例化出的实例,,,所以,为了实现每个实例在内存中都有一个独一无二的地址,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节1。切忌:一旦类中有其他的占..原创 2021-09-09 15:48:28 · 588 阅读 · 0 评论