`
SmartGeek
  • 浏览: 71368 次
  • 来自: 南京
社区版块
存档分类

C/C++ 数据类型长度

 
阅读更多

我们在编写 C/C++ 代码时肯定希望在32位和64位系统都能正常运行,那么我们就需要注意基本数据类型的长度在32位与64位中的变化;另外这种变化还与编译器相关。

 

64位 GCC 是 LP64:即 long 和 pointer 是64位,具体的:

 

gcc 编译器

32

64

char

1

1

short

2

2

int

4

4

long

4

8

long long

8

8

long double

12

16

double

8

8

float

4

4

void*( 指针 )

4

8

size_t

4

8

 

另外数据长度的变化还影响到字节对齐,也就是影响结构体的补位操作:gcc-32 是4字节对齐;gcc-64 是8字节对齐。

 

PS: 64位 VC 是 LLP64:即 long long 和 pointer 是64位。

 

分享到:
评论

相关推荐

    C语言/C++数据类型介绍

    ### C语言/C++数据类型详解:开启编程世界的大门 #### 整型(Integers) 在C语言和C++中,整型是最基础的数据类型之一,用于存储整数值。通过不同的修饰符,整型可以细分为多种类型,满足不同场景的需求。 **1.1 ...

    java和c/c++ 数据类型长度的比较

    本文将深入对比Java和C/C++的数据类型长度,以便更好地理解和利用它们。 首先,让我们来看C/C++的数据类型。C语言提供了多种整数类型,包括char、short、int和long。根据Ansi C的规定,char类型通常代表一个字节,...

    嵌入式C/C++编程精华文档

    C/C++中的struct是C++语言中特有的关键字,用于定义一个复合数据类型。它是一种可以包含多个不同类型数据项的结构,允许将不同类型的数据封装在一起,形成一个单一的类型。在嵌入式C/C++编程中,struct被广泛用于...

    C/C++ 标准文档

    C99引入了许多新特性,比如支持变量长度数组(VLA)、新的数据类型(如复数和宽字符类型)、内联函数、可选的括号包围初始化器、以及对原生类型的支持。此外,C99还改进了预处理器,引入了类型安全的指针运算,增强...

    C/C++编码规范

    - **数据类型选择**:根据实际情况选择合适的数据类型。 - **结构体定义**:结构体成员变量的排列顺序、访问修饰符的选择等。 - **枚举类型**:如何合理使用枚举类型。 #### 六、函数和过程 函数的设计和实现是...

    几百种加密算法库 ( C/C++代码 )

    "几百种加密算法库 ( C/C++代码 )" 提供了一个丰富的资源集合,涵盖了多种加密算法的实现,这些实现用C语言和C++这两种高效且广泛应用的编程语言编写。下面,我们将深入探讨这些标签所涵盖的知识点,并介绍一些常见...

    C/C++库函数以及文件大全(经典)

    同时,STL的模板设计允许这些组件与任何类型的数据一起工作,具有极高的灵活性。 总的来说,"C/C++库函数以及文件大全(经典).chm"这份资源可能是对C/C++编程者极其有价值的参考资料,它包含了大量的函数和STL组件...

    C/C++ 常用函数查找大全

    vector可以动态存储任意类型的数据,并提供便利的容器操作;string类则封装了字符串处理的所有功能,相比C语言中的字符数组更加安全和方便。 此外,C++还引入了STL(Standard Template Library,标准模板库),其中...

    基于C/C++的数据结构ADT演示系统

    在计算机科学中,抽象数据类型(Abstract Data Type,简称ADT)是理论计算机科学中的一个重要概念。它是一种逻辑上的数据类型定义,描述了数据的操作集,但不涉及这些操作的具体实现。ADT提供了一种封装机制,允许...

    zip基于c/c++的压缩解压缩程序

    在C/C++中,处理文件I/O操作主要依赖于标准库中的`<fstream>`,用于读写二进制文件,这对于处理ZIP文件的二进制数据流至关重要。开发者可能需要理解并正确使用`ifstream`和`ofstream`类,以及如何使用`seekg`和`...

    c/c++标准库函数

    C++标准库还在C的基础上增加了STL(Standard Template Library),这是一个强大的工具集,包含模板类和函数,用于高效地实现数据结构和算法。 在C语言中,标准库主要由ISO C99定义,它包含了多个头文件,如(I/O...

    C/C++网络传输struct类型数据

    对于不包含数组的结构体,如`SecondData`,发送和接收的流程基本相同,只是初始化和处理的数据类型不同。结构体的每个成员都会按照它们在内存中的顺序和大小被序列化和反序列化。 值得注意的是,`send`和`recv`函数...

    c/c++与java互通 AES加密解密

    总的来说,"C/C++与Java互通AES加密解密"是一个挑战性的任务,需要对加密算法、数据类型转换、内存管理以及跨平台通信有深入的理解。通过这个实践,开发者可以提升自己的编程技巧,并对数据安全有更深刻的认识。

    C/C++常见面试题

    ### C/C++常见面试题详解 #### 概念问答题 **1. static关键字在C与C++中的含义** - **C语言中的static**: 在C语言中,`static`主要用于控制变量的可见性和生命周期。 - 当`static`用于变量时,该变量成为静态...

    基于linux unix socket编程源码(C语言/C++)

    本文将深入探讨基于Linux和Unix环境的Socket编程,主要关注C语言实现,以及C++对Socket编程的封装。 首先,Socket是网络通信中的一个抽象概念,它是一个端点,用于两台计算机之间的数据交换。在Unix和Linux系统中,...

    C/C++ http请求

    在IT行业中,C和C++是两种非常基础且强大的编程语言,广泛应用于系统级编程、游戏开发、嵌入式系统以及高性能计算等多个领域。当涉及到网络编程时,发送HTTP请求是常见的需求,例如获取网页数据、与Web API交互等。...

    C语言中各种数据类型长度.pdf

    C语言中各种数据类型长度详解 C语言是一种静态类型语言,变量的数据类型在编译时确定,对于不同的数据类型,C语言规定了不同的长度和存储大小。了解C语言中的数据类型长度是非常重要的,因为它直接关系到程序的可...

Global site tag (gtag.js) - Google Analytics