首页 > 编程语言 >C++类中static不计算入sizeof

C++类中static不计算入sizeof

时间:2023-06-15 14:07:07浏览次数:41  
标签:10 int MyParam dest static sizeof 类中


class MyParam{
  public:
    int a;
    static int b;
    int c;
    static int y;
    static int z;
};




sizeof(MyParam) = 8


int MyParam::b = 10;
int MyParam::z = 10;

int main()
{
  MyParam p;
  MyParam dest;
  p.a = 10;
  p.b = 2;
  p.c = 4;

  memcpy(&dest, &p, sizeof(MyParam));
  printf("sizeof(MyParam)=%d\n", sizeof(MyParam));
  printf("%d %d %d\n", p.a, p.b, p.c);
  printf("%d %d %d\n", dest.a, dest.b, dest.c);
}



[xiaochu.yh@OceanBase036197 cpp]$ ./a.out 


sizeof(MyParam)=8


10 2 4


10 2 4


标签:10,int,MyParam,dest,static,sizeof,类中
From: https://blog.51cto.com/u_16162111/6486712

相关文章

  • 测试类中启动web环境
    先在pom.xml文件中引入相关依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>然后定义测试类进行模拟: ......
  • 面试题:C语言中 printf("%d",sizeof('c')); 结果为什么是4?
    在C语言中,sizeof运算符用于获取数据类型或变量的字节大小。当您使用sizeof('c')时,它会返回字符常量'c'的字节大小。在C语言中,字符常量的类型是int,而不是char。尽管字符常量表示一个字符,但它实际上是以整数形式存储的。因此,sizeof('c')将返回4,即'c'字符常量的字节大小,这是因为......
  • C#Non-static method requires a target异常
    非静态方法需要一个目标,一般这种情况是调用的某个方法时传参为null,这种情况编译时不会报错,运行时会出错解决方法就是检查代码中涉及的实体是否为空,就比如我这里,getchildren的list就是空在使用finall时就报错了 ......
  • GCC/G++选项 -Wl,-Bstatic和-Wl,-Bdynamic
    GCC/G++选项-Wl,-Bstatic和-Wl,-Bdynamic参考https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html gcc使用-Wl传递连接器参数,ld使用-Bdynamic强制连接动态库,-Bstatic强制连接静态库。所以部分静态,部分动态连接这么写:gcc...-Wl,-Bstatic-l<your-static-lib>-Wl,-Bdyn......
  • C# 使用Expression代替反射获取动态类中的值
    示例代码:classPerson{publicintId{get;set;}publicstringName{get;set;}}privateobjectobj=newPerson{Id=123,Name="fred"};项目中的Class都是动态生成的,只好用object来存储。一般常规的方法是用反射去获取对应属性的值,由于......
  • C++面试八股文:static和const的关键字有哪些用法?
    C++面试八股文:static和const的关键字有哪些用法?某日二师兄参加XXX科技公司的C++工程师开发岗位第7面:面试官:C++中,static和const的关键字有哪些用法?二师兄:satic关键字主要用在以下三个方面:1.用在全局作用域,修饰的变量或者函数为静态的,限制在本文件内使用。2.方法内修饰修饰静......
  • 83 封装 在类中设定私有属性 限定传入的参数的范围;当调用时,需要用set方法传参
    类 封装packagecom.fqs.demo061201;publicclassGirl{//属性Stringname;privateintage;//set赋值publicvoidsetAge(inta){if(age>18&&age<50){age=a;}else{System.out.println......
  • 学习使用static的另一用法
    学习使用static的另一用法#include<stdio.h>intmain(){inti,num;num=2;for(i=0;i<3;i++){printf("num变量为%d\n",num);num++;{staticintnum=1;printf("内置模板num变量:%d\n&quo......
  • 单例模式(static应用场景)
     单例模式(Singleton) 设计-->一个类只能创建一个对象有效减少内存占用空间 设计一个系统--->百度搜索引擎 publicclassBaidu{ publicvoid搜索(Stringkeyword){ } } 创建一个Baidu对象new 调用搜索的方法做事情方法执行一遍 同一时间有很多很多......
  • 分析spring事务@Transactional注解在同一个类中的方法之间调用不生效的原因及解决方案
    问题:在Spring管理的项目中,方法A使用了Transactional注解,试图实现事务性。但当同一个class中的方法B调用方法A时,会发现方法A中的异常不再导致回滚,也即事务失效了。当这个方法被同一个类调用的时候,spring无法将这个方法加到事务管理中。我们来看一下生效时候和不生效时候调用堆栈日志......