栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C/C++】结构体初始化以及[VS2019]问题解决【详细】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C/C++】结构体初始化以及[VS2019]问题解决【详细】

1. 结构体的定义

struct 结构名 {
成员类型 成员名;
成员类型 成员名;
};

struct Test{
    int first;
    double second;
}Sample;
方法一 定义时直接赋值
Sample s(1, 1.00);

缺点:必须匹配变量顺序,不能错位

方法二 先定义,后赋值
Sample s;
s.second = 1.00;
s.first = 1;

优点:不需要关心顺序

方法三 定义时乱序赋值(C风格)

重点:
C99标准,gcc支持,vs不支持。必须加. VB也有类似用法
相当于1+2

这种方法在Linux内核(kernel)中经常使用,在音视频编解码库FFmpeg中也大量频繁使用,还是很不错的一种方式。

Sample s{
    .second = 1.00;
    .first  = 1;
}

方法四 定义时乱序赋值(C++,C#风格)

重点:
可以用在c语言代码中,只是更常用在c++代码中
gcc支持这种编译,vs不支持

Sample s{
    second : 1.00;
    first : 1;
}

vs2019结构体初始化常见问题

使用vs2019编辑c++的项目,使用方法三在VS019上编写编译
出现报错,经过设置后也是支持的,特意写下来。

设置vs2019支持2.1中初始化方式

版本要求: vs2019 16.1版本或以上版本

设置步骤如下:

(1) 项目

(2) 属性

(3)C/C++

(4) 语言

(5)C++语言标准 选 预览项 最新功能, 如下图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号