首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基本魔法语言常见概念(二) (C语言)

基本魔法语言常见概念(二) (C语言)

作者头像
散峰而望
发布2025-12-23 13:02:36
发布2025-12-23 13:02:36
1390
举报

语句和语句分类

  • 空语句

它不执行任何实际操作。尽管看起来简单,但在某些特定场景下却非常有用。

代码语言:javascript
复制
#includ <stdio.h>
int main()
{
    ;//这就是空语句
    return 0;
}   

空语句一般出现的地方是:构建魔法支架时要额外建一个支点,但这个支点不需要做任何事,这时就可以建造空语句。但还有其他用处如:

  1. 作为循环结构的占位符
代码语言:javascript
复制
while(condition_is_true);  // 等待条件变为false
  1. 用于标记语句块的结束位置
代码语言:javascript
复制
if(condition) {
    // 空语句块
    ;
}

3.在宏定义中作为空操作`

代码语言:javascript
复制
#define NO_OP ;
  1. 在语法要求必须有语句但不需要实际操作的地方 需要注意的是,空语句虽然合法,但过度使用或不当使用可能会导致代码难以理解。在某些情况下,使用空语句可能会隐藏逻辑错误。
代码语言:javascript
复制
if(condition);
    do_something();  // 这行实际上不在if条件内

在大多数现代IDE中,会针对孤立的空语句发出警告提示。建议在使用空语句时添加注释说明其用途,以提高代码可读性。

  • 表达式语句

表达式语句是魔法程序中最基础的执行单元之一,其本质是将一个完整的魔法咒语(表达式)通过分号作为终结符来构成可执行的语句。在魔法编程中,这种结构就像巫师在施展咒语时最后需要说出的"Finite"(结束语)一样重要。

具体来说,一个标准的表达式语句包含以下要素: 1.魔法表达式(如:fireball.power = 100) 2.终止分号(;)

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int a = 15;
    int b = 0;
    b = a + 5;//表达式语句
    return 0;
  }    
代码语言:javascript
复制
// 简单的魔法能量赋值
mana = 100;

// 调用咒语
castSpell("Lumos");

// 复合魔法表达式
wand.material = "dragon_heartstring";
  • 函数调用语句

当要用进阶魔法(函数调用)的时候,魔法师们(程序员)需要遵循特定的咒语仪式(函数调用规范)。首先需要准备好魔法材料(函数参数),这些材料必须按照魔法卷轴(函数声明)中规定的类型和顺序来准备,比如整型水晶(int)、字符串卷轴(char*)或者浮点粉末(float)等。然后以正确的魔法阵排列方式(函数语法)进行咏唱,包括精确的咒语分隔符(逗号)、魔法阵边界符(圆括号)和咏唱终止符(分号)。比如在C语言中施展时,可以这样咏唱:

代码语言:javascript
复制
#include <stdio.h>
int Add(int x,int y)
{
    return x+y;
}//自定义一种函数,接下来调用它

int main()
{
    printf("haha\n")//函数调用语句
    int ret = Add(2,3)//函数调用语句
    return 0;
}    

一般魔法调用方式包括 1.基础咏唱(直接调用) 2.附魔咏唱(带参数调用) 3.连锁咏唱(嵌套调用)

值得注意的是,不同魔法学派(编程语言)的咏唱方式可能不同。当然,高阶魔法师还会使用魔法契约(函数回调)和魔法阵列(高阶函数)等更复杂的技巧。每次调用函数就像施展一个独立的小魔法,需要确保魔法回路(调用栈)不会过载。

  • 复合语句

复合语句其实就是魔法中的"多重施法咒"(代码块),它允许魔法师(程序员)将多个简单咒语(语句)组合成一个强大的魔法效果。代码块(由成对的花括号{}包裹)就像在施展魔法时绘制的魔法阵,成对括号中的代码就构成一个独立的施法空间。如:

代码语言:javascript
复制
#include <stdio.h>

void printf(int arr [], int sz)//函数的大括号中的代码也构成复合语句
{
     int i = 0;
     for(i = 0; i < sz; i++)
     {
         printf("%d", arr[i]);
     }
}

int main ()
{
     int i = 0;
     int arr[10] = {0};
     for(i=0; i<0; i++)//for循环的循环体的大括号中的就是复合语句
     {
     arr[i] = 10-i;
     printf("%d\n", arr[i]);
     }
}             

具体来说,复合语句主要有以下几种形式:

1.条件施法(if-else语句): 就像占卜课上的预言,如果水晶球显示某个条件为真,就执行特定的咒语组合。

代码语言:javascript
复制
if (魔杖中有魔力) {
    念出攻击咒语;
    施展防御结界;
} else {
    快速补充魔力药剂;
}

2.循环施法(for/while循环): 就像魔咒课上反复练习同一个咒语,直到完全掌握。

代码语言:javascript
复制
for (int 练习次数 = 0; 练习次数 < 100; 练习次数++) {
    挥动魔杖;
    念出"除你武器";
}

3.咒语组合(代码块): 用大括号{}将多个简单咒语包裹起来,形成一个完整的魔法效果 这些复合语句就像魔法世界的组合咒语,让程序员的"魔法"更加灵活多变。就像邓布利多可以同时操控多个魔法一样,复合语句让代码能够处理更复杂的逻辑和场景。

  • 控制语句

控制语句用于控制魔法因子的流动(程序的执行流程),以实现魔法的各种结构方式(C语言支持三种结构:顺序结构,选择结构,循环结构),从而形成特定的魔法效果。在魔法编程中,控制语句就像是魔杖的挥动方式,决定了咒语的执行顺序和条件。而C语言有九种控制语句。 可以分成以下三类: 1.条件判断语句(分支语句):if语句,switch语句; 2.循环执行语句:do while语句,while语句,,or语句; 3.转向语句:break语句,goto语句,continue语句,return语句; 后期还会介绍一一详细控制语句。

注释

注释是对代码的说明,编译器会忽略注释,也就是注释实际对代码没有影响,相当于魔法中 “咒语注释”——虽然念出来,但不会产生实际魔法效果。注释不仅是写给自己看的也是给其他魔法师(程序员)理解的。

好的注释可以更好的理解代码,但也不要过度注释。同时,如果不写注释的话可能会让后期阅读代码的人彻底疯狂。

写注释一定程度上反应了自身的素质,建议大家写必要的注释。

  • 注释的两种形式

1./**/的形式

第一种方法是将注释放在/**/之间,内部可以分行。

代码语言:javascript
复制
/*注释*/

/*
    这是一行注释
*/

这种注释可以插在行内。

代码语言:javascript
复制
int fopen(char* s/* file name */ ,int mode)

上面的 /* file name */ 就是用来对函数参数进行说明,而后面的代码依然可以执行。

注意:这种注释一定不要忘记结束符号*/,不然容易导致错误。

代码语言:javascript
复制
printf("a");/*注释一
printf("b");
printf("c");/*注释二*/
printf("d");

上面示例有两个注释,第一行和第三行。但是,第一行注释忘写结束符号,导致注释一直延续到第三行。

/**/也不支持嵌套注释,/* 开始注释后,遇到第一个 */就认为注释结束。

代码语言:javascript
复制
/*
printf("a");
printf("b");
printf("c");/*注释二*/-->之后的内容不会注释
printf("d");
*/

2.//的形式 第二种写法是将注释放在//后,从//到行尾都属于注释。这种注释只能单行,可以放在行首,也可以放在一行语句的结尾。是C99标准新增的语法。

代码语言:javascript
复制
//注释
int x = 520 ;//注释

但不管哪一种注释,都不能放在双引号里面

双引号里面的注释符号,会成为字符串的一部分,解释为普通符号,失去注释作用。

  • 注释会替换

编译时,注释会被替换成一个空格,所以如min/* 这是注释 */arr会变成min arr,而不是minarr。

(可能会有一些小毛病,还请各位大佬多多指教)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 语句和语句分类
  • 注释
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档