文章目录
C 备忘
动机
- hack
- 硬件
- microblocks vm
- squeak vm
标准
ANSI C
C89
现在多数C代码是在ANSI C基础上写的
C11
Linux 内核正迁移到 C11
变长数组 vla
C18
C语言的现行标准
特性
- 有变量作用域以及递归功能的过程式语言
- 传递参数均是以值传递(pass by value),外也可以传递指针(a pointer passed by value)
- 不同的变量类型可以用结构体(struct)组合在一起
- 部分的变量类型可以转换,例如整数型和字符型变量。
- 透过指针(pointer),C语言可以容易的对存储器进行低端控制
支持C18的编译器有:
- GCC 8.1.0
- LLVM Clang 7.0.0
- IAR EWARM v8.40.1
备忘
Hello World
|
|
指针
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址
而 * 则是取内容操作符,意思是取这个内存地址里存储的内容。
可将 int *a;看作是 “*a 解得的内容类型为 int”
指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
&,叫做取地址运算符,它将返回一个变量、数组或函数的存储地址。
函数
C语言的基本结构单位是函数
库
功能和封装的集合,称为“标准库”,标准库的声明头部通过预处理器命令#include进行引用。
VLA
|
|
hard way
hello world
|
|
|
|
todo: https://wizardforcel.gitbooks.io/lcthw/content/ex2.html
参考
- wikipedia C
- Learn X in Y minutes Where X=c
- 本方法学C
- The C Programming Language
- [replit.com]
- 在线编辑器 My_C_Lab
文章作者 种瓜
上次更新 0001-01-01