• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C/C++预编译阶段获得sizeof(xx)的值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

譬如目标平台是arm的板子,arm-none-eabi-g++作为编译器。手头没有板子来运行代码,而代码中又需要确定sizeof(xx)的值。如下代码包含了两种方法。

#include <iostream>
#include <stdio.h>
#include <cmath>
#include <stdint.h>

//方法1:用warning搞
//https://stackoverflow.com/questions/20979565/how-can-i-print-the-result-of-sizeof-at-compile-time-in-c
char (*__kaboom)[sizeof( int* )] = 1;  //改成你需要的类型
char (*__kaboom)[sizeof( int32_t* )] = 1;


//方法2,用C++的模板参数搞。来自xfan
#include <cstddef>
template <std::size_t x>
struct show_size;

void foo()
{
    show_size<sizeof(char)>(); //改成你需要的类型
}

using namespace std;

int main() {

        cout << "hello " << endl;

        return 0;
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c++总的map和set有什么区别,如何实现的发布时间:2022-07-13
下一篇:
VS2015C#不能进入断点发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap