2.1 数据类型及源程序结构

TinyC 中变量只有 int 一种数据类型(32位),函数的返回值可以声明为 int 和 void 两种类型,但编译器会自动为 void 函数返回一个 int 值。不支持全局变量,只有局部变量,变量须先声明再使用,且变量声明必须放在函数体的最前面,不支持声明变量的时候赋初值。

不支持函数原型声明,函数声明必须和定义在一起,函数无需先定义再使用。整个程序必须有一个不带参数的 main 函数,此为程序的入口。

“//…” 以及 “#…” 为单行注释。不支持 #include 等预处理命令,不支持多行注释。

典型的 TinyC 源程序是由一个个的函数定义组成的,如下:

  1. int main() {
  2. int a, b;
  3. int c, d; // 变量声明必须放在函数体的最前面
  4. a = 0;
  5. ...
  6. }
  7.  
  8. void func1(int a, int b) {
  9. ...
  10. }
  11.  
  12. ...

TinyC 函数体内的语句只有四种:赋值语句、函数调用语句、控制语句( if 语句)和循环语句( while 语句)。赋值语句中,左边为变量名,右边为表达式,一个只含有表达式(函数调用除外)的语句是不合法的,如下:

  1. a = 1 + a; // 合法
  2. sum(1, 2); // 合法
  3. if (a > 0) { ... } // 合法
  4. while (a < 0) { ... } // 合法
  5. 1; // 不合法
  6. 1 + 2; // 不合法