struct的初始化
1、struct的初始化可以使用类似数组的方式,如下:
struct Student
{
int _Age;
string _Name;
};
Student stu = {26,"Andy"};
2、有两个地方需要注意:
a、顺序要保持一致,如下:
Student stu = {"Andy",26}; 编译报错
b、后面的可以不初始化
Student stu = {26}; 只初始化_Age
3、考虑下面的情况,Student当中有个字段,表示Student对象的大小,而在Debug和Release下,大小是不一样的,怎么办?
使用sizeof,如下:
struct Student
{
int _Size;
int _Age;
string _Name;
};
Student stu = {sizeof(stu),26,"Andy"};
4、注意:同一个数据类型,在Debug和Release模式下,占用的内存有可能会不一样。比如:
int :Debug和Release 一样,都是4个字节
string :Debug占用32个字节,Release占用28字节
5、在Debug模式下,对象本身有可能会多占用一些字节,同时,Debug模式下,对象的前后还会多占用一些字节(比如int 前后各4个字节),用于保存调试信息。
struct的初始化的更多相关文章
- c语言中struct的初始化
C++中的struct已经和class一样,可以用构造函数初始化. C语言中的struct怎么初始化呢? typedef struct _TEST_T { int i; c ...
- c语言 struct 的初始化
转自:http://www.cnblogs.com/silentjesse/archive/2013/07/30/3225212.html struct数据有3中初始化方法:顺序,C风格及C++风格的 ...
- struct {0}初始化
#include <iostream> struct MyStruct { MyStruct(int a) { a = b = ; } int a; int b; }; int main( ...
- 大括号对struct进行初始化
1 partial initialization 即所谓的部分初始化. 这个时候,无论该struct变量是static的还是automic的,未显式初始化的成员都会被初始化为默认值.
- struct数组初始化
const int MAXN=100; struct A { int a,b; }; struct A arr[100];//此时编译通过 struct A arr[MAXN];//此时编译不通过,原 ...
- C++ struct 定义及初始化
1 定义: struct Book{ unsigned int bookNo; string name; }; 2 初始化 struct的初始化分为三种:逐一赋值,顺序赋值,乱序赋值 // 逐一 ...
- C#中结构(struct)的部分初始化和完全初始化
假设有这样一个值类型struct. public struct Size { public int Length; public int Width; public int Area() { retu ...
- 内置函数new() 和struct{} 初始化的区别
一.new() 这是一个用来分配内存的内置函数,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配的 t 类型的零值的指针.在golang的代码定义如下: func new(t Type ...
- C基础--结构体成员初始化方式
之前在linux内核代码中看到结构体成员成员初始化使用类似于.owner = THIS_MODULE, 不太见过,于是搜了个博客,分享下: 转自:http://www.cnblogs.com/Anke ...
随机推荐
- [Go] 通过 17 个简短代码片段,切底弄懂 channel 基础
关于管道 Channel Channel 用来同步并发执行的函数并提供它们某种传值交流的机制. Channel 的一些特性:通过 channel 传递的元素类型.容器(或缓冲区)和 传递的方向由“&l ...
- poll() can't detect event when socket is closed locally?
from https://stackoverflow.com/questions/5039608/poll-cant-detect-event-when-socket-is-closed-locall ...
- 【SVN】如果windows用户忘记了svn的用户名和密码怎么办?
如果windows用户忘记了svn的用户名和密码怎么办? 1>你得进入默认地址 C:\Users\Administrator\AppData\Roaming\Subversion\auth\sv ...
- Hive学习之自己定义聚合函数
Hive支持用户自己定义聚合函数(UDAF),这样的类型的函数提供了更加强大的数据处理功能. Hive支持两种类型的UDAF:简单型和通用型.正如名称所暗示的,简单型UDAF的实现很easy,但因为使 ...
- SIP SDP Profile-level-id解析
转自:http://blog.csdn.net/wh8_2011/article/details/53558504 基于SIP协议的VOIP通信,该字段通常位于视频协商sdp报文中,如: video ...
- Java 集合系列之 Vector详细介绍(源码解析)和使用示例
Vector简介 Vector 是矢量队列,它是JDK1.0版本添加的类.继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口. Vector 继承 ...
- uvc Android
1) The kernel is V4L2 enabled, e.g.,CONFIG_VIDEO_DEV=yCONFIG_VIDEO_V4L2_COMMON=yCONFIG_VIDEO_MEDIA=y ...
- Material Designer的低版本兼容实现(七)—— Rectange Button
矩形按钮是我们很常用的控件,让其拥有5.0动效必须自定义控件.本文讲解的控件是参考: https://github.com/shark0017/MaterialDesignLibrary 一.放入布局 ...
- 开源项目DataTimePicker实现时间和日期的选择
这个开源项目是模仿Google官方的time选择器做的,是否漂亮.让我爱不释手,真心喜欢.很有幸和大家一起分享下,那么话不多说开始讲解. 开源项目地址:https://github.com/fl ...
- Windows Power Shell简介
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能. 它引入了许多非常有用的新概念,从而进一步扩展了您在 W ...