讲师中心 微信公众号
AI工具推荐 视频效率加速

C语言中不存在“原始类型”(primitive types)的概念

陌晨吖_4876

陌晨吖_4876

发布时间:2026-02-07 14:20:26

|

596人浏览过

|

来源于php中文网

原创

C语言中不存在“原始类型”(primitive types)的概念

c语言作为一门面向过程的系统编程语言,并不区分“原始类型”与“对象类型”,因此没有java等面向对象语言中定义的primitive types概念;其所有数据类型均为基本内置类型,设计目标是跨平台效率而非统一尺寸。

在Java等面向对象语言中,“primitive types”(如 int、boolean、char)是为区别于引用类型(如 Integer、String)而提出的语义分类——它们不继承自任何类、不具有方法、直接存储值且由JVM严格规定大小(例如 int 恒为32位)。但C语言根本不存在这种二元划分的基础:它没有类、没有对象、没有自动装箱/拆箱机制,也没有运行时类型系统。 因此,谈论C中的“primitive types”属于概念误植。

C标准(ISO/IEC 9899)仅定义了 “basic types”(基本类型) 和派生类型(如数组、结构体、指针、联合体、函数类型等)。其中基本类型包括:

  • 整数类型(integer types):

    • 有符号:signed char、short int、int、long int、long long int
    • 无符号:unsigned char、unsigned short int、unsigned int、unsigned long int、unsigned long long int
    • 注意:char 单独存在,其符号性由实现定义(可等价于 signed char 或 unsigned char);bool 并非原生类型,而是 <stdbool.h> 中通过宏 #define bool _Bool 引入的别名,_Bool 才是C99引入的标准基本类型。
  • 实浮点类型(real floating types):
    float、double、long double

    立即学习“C语言免费学习笔记(深入)”;

    Phy Git Blame Archaeologist
    Phy Git Blame Archaeologist

    Git 历史考古工具,回答“为什么这段代码存在?”,适用于任意文件、行或可疑代码块。链式调用 git blame → git log --follow → commit 信息...

    下载
  • 空类型(void type):
    void —— 表示“无类型”,用于函数返回值、指针泛型等场景,不可用于变量声明(除非作为指针基类型,如 void*)。

此外,C还支持带限定符的类型(如 const int、volatile char),但限定符不改变类型本质,仅修饰访问语义。

值得注意的是,C对类型的尺寸不做绝对保证,仅规定最小范围和相对关系(见C17标准 §5.2.4.2.1):

#include <stdio.h>
#include <limits.h>
#include <float.h>

int main() {
    printf("sizeof(int) >= %d bytes\n", sizeof(short)); // guaranteed: sizeof(short) <= sizeof(int) <= sizeof(long)
    printf("INT_MIN: %d, INT_MAX: %d\n", INT_MIN, INT_MAX);     // at least -32767 ~ +32767 (16-bit min)
    printf("FLT_DIG: %d decimal digits (float)\n", FLT_DIG);     // at least 6
    return 0;
}

这与Java形成鲜明对比:Java中 int 永远是32位、long 永远是64位,而C中 int 在16位MCU上可能仅16位,在x86-64 Linux上常为32位,在某些嵌入式平台甚至可能是24位——这是C“贴近硬件、效率优先”哲学的直接体现。

✅ 总结与建议:

  • 不要将Java/C#等语言的“primitive vs reference”范式套用于C;
  • 在C中应使用标准术语:“basic types”(基本类型)、“derived types”(派生类型);
  • 需要可移植尺寸时,务必使用 <stdint.h> 中的定宽类型(如 int32_t、uint8_t),而非依赖 int 或 long 的隐含大小;
  • 理解 char 的特殊地位(字节单位、字符/小整数通用)、_Bool 的标准化引入(C99)及 void 的独特语义,是掌握C类型系统的基石。

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2991

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

554

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

522

2026.02.12

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

6459

2023.08.02

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

6647

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

764

2025.10.23

java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

2130

2023.11.13

java boolean类型
java boolean类型

本专题整合了java中boolean类型相关教程,阅读专题下面的文章了解更多详细内容。

163

2025.11.30

剧云故事大纲与分场规划教程
剧云故事大纲与分场规划教程

本专题讲解剧云梗概与多级大纲功能,覆盖全局、分集、分场结构生成,以及主线冲突、剧情节点和场次顺序调整。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn