struct student

{

int age;

string name;

int id;

};

初始化:

student st1={10, "li ming", 01};

修改某个成员变量的值:st1.id = 11;

下面谈我遇到的问题:id的接口准备好了,然而不知道name的值,也就是只需要把age和id进行设置就可以了

已经存在的代码 const student st1 = {l_age};

我需要将id计算出来并且添加进去,const student st1 = {l_age, l_id};//这是不对的,顺序初始化,没有对name进行初始化。顺序的缺陷是必须按成员定义的顺序逐个初始化,不能间隔。

转到乱序初始化:

student st1={ .age = 10,

.name = "li ming",

.id = 01};//C风格

或者

student st1={ age : 10,

name : "li ming",

id : 01};//C++ 风格

但是gcc不支持后缀名为cpp的文件使用这种方式!!!!

项目中是CPP后缀的文件,使用这种方式后编译提示sorry, unimplemented: non-trivial designated initializers not supported。
最后解决办法:

student st1 = {l_age};

st1.id = l_id;

虽然很ugly,只能等后面做name计算的团队去重构了,呵呵。

C++ struct 初始化的问题的更多相关文章

  1. struct初始化

    C语言中struct初始化 • 普通结构体的初始化 假设我们有如下的一段代码,其中已有Student结构体,要求实例化一个Student对象并将其初始化. #include <stdio.h&g ...

  2. 内置函数new() 和struct{} 初始化的区别

    一.new() 这是一个用来分配内存的内置函数,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配的 t 类型的零值的指针.在golang的代码定义如下: func new(t Type ...

  3. golang struct 转map 及 map[string]*Struct 初始化和遍历

    package main import ( "encoding/json" "errors" "fmt" "reflect&quo ...

  4. c++由string组成的struct初始化崩溃

    struct _UserInfo { string username; string password; string ip; string port; } _UserInfo str={}; 这样就 ...

  5. 结构及其使用 struct (C#)

    首先结构是值类型. 结构是使用 struct 关键字定义的,结构如下: struct 结构名{} 结构概述 结构具有以下特点: 结构是值类型,而类是引用类型. (结构不能包含显式的无参数构造函数) 与 ...

  6. C基础--结构体成员初始化方式

    之前在linux内核代码中看到结构体成员成员初始化使用类似于.owner = THIS_MODULE, 不太见过,于是搜了个博客,分享下: 转自:http://www.cnblogs.com/Anke ...

  7. Go基础系列:struct和嵌套struct

    struct struct定义结构,结构由字段(field)组成,每个field都有所属数据类型,在一个struct中,每个字段名都必须唯一. 说白了就是拿来存储数据的,只不过可自定义化的程度很高,用 ...

  8. Linux下C结构体初始化[总结]

    1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }d ...

  9. Linux下C结构体初始化

    1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }d ...

随机推荐

  1. c/c++重定向输入输出

    #define Local #include <iostream> #include <cstdio> //#include <stdio.h> using nam ...

  2. Apache Flume日志收集系统简介

    Apache Flume是一个分布式.可靠.可用的系统,用于从大量不同的源有效地收集.聚合.移动大量日志数据进行集中式数据存储. Flume简介 Flume的核心是Agent,Agent中包含Sour ...

  3. python 的正则表达式 贪婪模式与懒惰模式

    正则表达式中用于表示匹配数量的元字符如下: ? 重复0次或1次,等同于{0,1} * 重复0次或更多次,等同于{0,} + 重复1次或更多次,等同于{1,} {n,} 重复n次及以上 上面的表示匹配次 ...

  4. 图文:eclipse中SVN分支合并到主干

    在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. 1. 要想将分支 ...

  5. 深入浅出数据结构C语言版(4)——表与链表

    在我们谈论本文具体内容之前,我们首先要说明一些事情.在现实生活中我们所说的"表"往往是二维的,比如课程表,就有行和列,成绩表也是有行和列.但是在数据结构,或者说我们本文讨论的范围内 ...

  6. [译]Selenium Python文档:八、附录:FAQ常见问题

    另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver ...

  7. windows32位安装MYSQL-python1.2.3

    建议不要用pip安装MYSQL-python,因为会自动选择MYSQL-python1.2.5这个版本,但是这个版本不支持windows 32位系统. 1.首先安装VS2008,因为要依赖VC9.0编 ...

  8. 进入效果 neon

    @-webkit-keyframes neon { 0% { opacity: .3; -webkit-transform: scale(2); transform: scale(2); } 100% ...

  9. java安装1335错误解决办法(亲测)

    心血来潮想了解一下java,结果一开始就碰到了让心"恶心"的1335错误. 废话不多说,直接看下面: 你可以先尝试在这个链接下载java.exe文件 http://www.orac ...

  10. JSTL标签用法 详解(转)

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...