再探C语言(1)

温馨提示 :

学C语言就像玩《掘地求升》------你以为懂了语法就能通关?

不!编译器会用铁锤教你做人!(╯‵□′)╯︵┻━┻

🐱Part 1:sizeofの跨平台迷惑行为

Q1. 不同环境下sizeof(int)的结果

运行环境 结果(字节) 本喵吐槽
9位单片机 2 这架构比我爷爷的算盘还古老
16位单片机 2 int和short在此拜了把子
32位x86 CPU 4 经典永不过时
64位x86 CPU 4 Intelの祖传秘方
32位Windows7 4 微软:4是我的幸运数字
64位Windows7 4 说好的64位呢?(╯°□°)╯︵┻━┻

冷知识 :

C标准规定sizeof(int) >= sizeof(short),具体大小全看编译器心情!

所以当同事说"我的int有8字节"时------他可能来自火星🌍


🐱Part 2:C语言概念の灵魂拷问

Q1. 三大命名法王の区别

类型 特点 作死案例
标识符 程序员自创的变量名 int 玛卡巴卡 = 233;
关键字 C语言官方认证的VIP词汇 if(else == 女朋友)
预定义标识符 编译器自带的工具人 #define 爱情 404

Q2. 运算符の抢座规则

  • 左结合 :像食堂打饭排队,从左往右刮油水(a + b + c → (a+b)+c)
  • 右结合 :像霸道总裁壁咚,从右往左强势操作(a = b = 520 → a = (b=520))

Q3. 内存世界の户口调查

术语 人话翻译 迷惑行为
左值 有房产证的内存地址 int *p = &单身狗;
右值 流浪的临时数据 1314 = 520 + 794;
副作用 函数偷偷改全局变量 while(熬夜){头发--;}
未定义行为 编译器の薛定谔警告 arr[3] = 4;(可能召唤神龙)

🐱Part 3:编译过程の双标现场

语法检查 vs 语义检查

检查类型 类比场景 经典翻车案例
语法检查 语文老师纠错别字 inta a; → "你字都不会写?"
语义检查 女朋友查聊天记录 int age = "永远18"; → "你当我是傻子?"

终极总结(快拿去装X)

c 复制代码
// 表达式 vs 语句 vs 代码块
printf("%d", 1+1);    // 表达式:产出一个值
printf("喵");         // 语句:带分号的完整动作
{ system("shutdown"); } // 代码块:搞事情全家桶
相关推荐
女神下凡2 分钟前
芯参谋(84):Linux eMMC 驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件
·present·11 小时前
CSAPP(Bomb lab)
c语言·c++
szxinmai主板定制专家12 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
HQB202614 小时前
屹晶微电子 EG1130|2‑24V 输入 / 最高 28V 输出 内置 MOS 异步升压 DC‑DC|SOT23‑6|摄像头 / 车充 / 电池充电电源
嵌入式硬件·硬件工程
wuminyu16 小时前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
泛凡(Linyongui)16 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
十年磨一剑~16 小时前
Linux 内核中断处理机制与软硬件协同流程
linux·嵌入式硬件
糖糖单片机设计17 小时前
基于单片机的热水器节能控制系统
单片机·嵌入式硬件
数字新视界18 小时前
数字孪生技术赋能智能化转型与创新实践
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
HQB202618 小时前
屹晶微电子 EG1195|10‑120V/10A+ 外置 MOS 异步降压控制器|ESOP‑8|电动车转换器 / 快充 / 工业电源
嵌入式硬件·硬件工程