首页 / 知识
关于c ++:初始化对象时{0}意味着什么?
2023-04-16 22:23:00

What does {0} mean when initializing an object?当使用 示例代码:
如果没有它,上述代码将在运行时崩溃。 这里发生的事情称为聚合初始化。以下是ISO规范第8.5.1节对集料的(缩写)定义:
现在,使用 以下是规范中的相关报价:
您可以在这里找到关于这个主题的完整规范 需要注意的一点是,此技术不会将填充字节设置为零。例如:
不同于:
在第一种情况下,C和I之间的pad字节未初始化。你为什么会在意?好吧,如果您将这些数据保存到磁盘上,或者通过网络或其他方式发送,那么您可能会遇到安全问题。 请注意,空聚合初始值设定项也可以工作:
回答为什么 例如,成员 当包括行时:
在结构设置的其余部分之前,您要告诉编译器在初始化您感兴趣的特定结构成员之前将所有结构成员清零。 EDCOX1·0是任意(完整对象)类型的有效初始化器,在C和C++中都是有效的初始化器。这是一个常用的习惯用法,用于将对象初始化为零(继续阅读以了解这意味着什么)。 对于标量类型(算术和指针类型),大括号是不必要的,但它们是显式允许的。引用ISO C标准第6.7.9节N1570草案:
它将对象初始化为零(对于整数为 对于非标量类型(结构、数组、联合), 中间支撑(
这就是为什么您不必为第一个元素为非标量的类型编写 因此:
是将 这些规则类似于C++。 在您的特定情况下,由于您要为 这并不(必然)等同于使用 我也用它来初始化字符串。
这是一段时间以来,我工作在C/C++ +,但Irc,同样的快捷方式也可以用于数组。 我一直在想,你为什么要用
下面是一个测试案例来解释: 检查C
我用
重要的是, 如果将上述代码更改为:
然后生成的"check"可执行文件至少与Ubuntu 12.04.2上的GCC 4.6.3编译器看起来完全相同; 注释中的提示是, 可能是C语言标准没有提到任何这一点,但在现实世界中,C编译器从未见过不同的行为。 0是一个匿名数组,其元素为0。 这用于用0初始化数组的一个或所有元素。 例如,int arr[8]=0 在这种情况下,arr的所有元素都将初始化为0。 |
最新内容
相关内容
linux压缩搜索命令?
linux压缩搜索命令?,系统,文件,工具,平台,电脑,命令,网络,管理,信息,时间,linux解压zip命令1、首先在电脑中,连接到linux远程主机,并进入zip文件linux命令搜索命令行?
linux命令搜索命令行?,工作,系统,地址,信息,命令,目录,基础,工具,管理,功能,linux怎么进入命令行打开linux系统,在linux的桌面的空白处右击。在linux命令搜索进程?
linux命令搜索进程?,系统,状态,软件,情况,进程,命令,代码,信息,数据,实时,如何查看Linux下的Tomcat的进程?1、tar xvf tomcat.tar.gz换成你的清空linux命令搜索?
清空linux命令搜索?,软件,系统,情况,命令,增长,工具,号码,密码,名称,位置,如何来清除Linux操作系统命令的历史记录clean 命令删除所有的软件安linux无效对象的命令?
linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,linux疑问:普通用户的ifconfig命令无法执行,如何解决?建议这个操linux命令搜索大全?
linux命令搜索大全?,地址,工作,系统,命令,管理,目录,标准,基础,工具,网络,linux命令大全linux常用命令有pwd命令、cd命令、ls命令、cat命令、glinux搜索过去命令?
linux搜索过去命令?,系统,信息,命令,名称,工作,预期,数字,地址,标准,服务,Linux系统中怎么搜索文件命令大全grep命令 grep是一个强大的文本搜linux命令搜索命令?
linux命令搜索命令?,系统,位置,地址,标准,管理,信息,命令,名称,工作,文件,Linux下Grep命令的详细使用方法?查找root目录下包含Linux的文件,命令linux初始化硬盘命令?
linux初始化硬盘命令?,系统,工作,设备,工具,信息,基础,地址,电脑,命令,数据,linux基础命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux日志搜索命令?
linux日志搜索命令?,信息,系统,对比,工具,一致,日志,文件,命令,实时,网络,linux查看日志的命令是?具体怎么用第一种:查看实时变化的日志(比较吃linux命令字符搜索?
linux命令字符搜索?,系统,工具,命令,灵活,信息,工作,字符串,文本,文件,模式,linux命令grep1、在linux中grep命令是非常有用的,它和管道(|)配合linux搜索筛选命令?
linux搜索筛选命令?,系统,数字,电脑,盘后,盘中,工具,信息,文件,命令,字符,在linux系统如何grep过滤中,不包含某些字符1、./delete_lines.sh fi