C**语言特性整理以及三个程序例子

来源:互联网 发布:主机域名由几部分组成 编辑:程序博客网 时间:2024/06/03 21:31

经过前一度时间的思考,我决定放弃C与C++代码段的线性排列关系,改为用树进行代码之间关系的精确描述。代码的第一个字节开始就要进行程序实质内容的描述。

所有语言程序介绍的书第一个例子都是"Hello, world!"。在C语言中,首先是引用输入输出库,然后是定义一个所谓的入口函数main,并且按照一定的格式写出函数体最后返回0。C**中程序的第一个字节就已经到了“数结构”的根节点,可以在上面立即写出代码。
//HelloWorld.caa
printf("Hello, world!/n");

同样,这个求从1加到100的和的例子也说明了从一开始就到了这个树结构的根节点的问题,不需要单独定义一个入口函数。
//Sum.caa
int i = 0, s = 0;
for (; i <= 100; i++) s = s + i;
printf("Result = %d", s);

下面这个例子描述了一个稍微度杂一点的数,通过同名函数在不同父节点里被调用的例子来说明。
//EatFruit.caa
void apple()
{
  void eat()
  {
    printf("Eat Apple./n");
  }
  eat();
}
void banana()
{
  void eat()
  {
    printf("Eat Banana./n");
  }
  eat();
}
apple();
banana();
这个程序运行的结果是:
Eat Apple.
Eat Banana.

值得注意的是,如果一对大括号之前没有定义函数的描述,比如
{
  //code
}
那么这段代码只会被当作普通的一个scope来对待,程序运行到这里的时候依然会执行里面的代码。反之,如果有定义函数描述,那么这个函数将被作为当前scope下的一个子函数,这个子函数不属于数的其他节点,是当前scope私有的。

原创粉丝点击