1.C语言和其关键字的一个简单介绍
c语言hello world
第一个程序
#include <stdio.h>int main() {printf("Hello, World!\n");return 0;
}
这是每个C程序员的第一个程序,它会在控制台上打印“Hello, World!”。
基本语法
- 每个语句和声明以分号结束。
- 代码块由大括号
{}
包围。 - 注释可以是单行
//
或多行/* ... */
。
关键字详解
C语言有许多保留的关键字,它们都有特定的含义,不能用作标识符名称。以下是一些常见的关键字及其简要说明:
- auto:指定变量具有自动存储期(默认局部变量)。
- break:跳出最近的封闭循环或switch语句。
- case/switch:用于开关语句,根据变量值执行不同的代码块。
- char:字符数据类型。
- const:声明不可修改的值。
- continue:跳过当前循环的剩余部分并立即开始下一次循环。
- default:switch语句中的默认分支。
- do/while:do-while循环,至少执行一次循环体。
- double:双精度浮点数数据类型。
- else:if语句的另一分支。
- enum:枚举类型,一组命名整数常量。
- extern:引用外部定义的变量或函数。
- float:单精度浮点数数据类型。
- for:for循环,一种常用的控制流语句。
- goto:无条件跳转至标记语句。
- if:条件语句。
- int:整型数据类型。
- long:长整型数据类型。
- register:建议编译器将变量保持在寄存器中以便快速访问。
- return:从函数返回值。
- short:短整型数据类型。
- signed/unsigned:有符号或无符号数值类型。
- sizeof:计算类型的大小或变量。
- static:延长变量的生命周期直至程序结束。
- struct:用户自定义的数据类型,包含多个不同类型的数据项。
- typedef:为现有的类型创建新的名字。
- union:类似于结构体,但所有成员共享同一块内存。
- void:表示没有类型(函数返回类型或指针类型)。
- volatile:告诉编译器该变量可能会被外部力量改变。
标识符
顾名思义,标识符是用来标识某个实体的符号的命名规则以及规范
- ①只能由字母,数字和下划线组成,且以字母和下划线开头
- ②不能和关键字相同
- ③ 区分大小写
- ④由长度限制
c语言命名标识符 内部 和外部的区别
在C语言中,标识符(Identifiers)是用来标识变量、函数、数组等元素的名称。根据其作用域和链接属性的不同,标识符可以分为内部链接(internal linkage)和外部链接(external linkage)。理解这两者的区别对于编写可维护和易于理解的代码至关重要。
1. 内部链接(Internal Linkage)
内部链接的标识符只能在定义它们的文件(translation unit)内部访问。这意味着,如果你在文件A中定义了一个具有内部链接的标识符,那么在文件B中就不能直接访问它,除非通过某种形式的显式引用,比如通过函数参数或返回值传递。
// file1.c
static int localVar = 10; // 内部链接
void func() {
printf("%d\n", localVar);
}
// file2.c
extern void func(); // 需要显式引用func函数以访问它
int main() {
func(); // 这将调用file1.c中的func函数,但由于localVar是静态的,这里不能直接访问它。
return 0;
}
2. 外部链接(External Linkage)
外部链接的标识符可以在其他文件中通过extern
关键字声明,从而在这些文件中访问。默认情况下,如果不使用static
关键字,C语言中的标识符都具有外部链接。这允许在多个文件中共享变量和函数。
示例:
// file1.c
int globalVar = 20; // 外部链接,默认的
void func() {
printf("%d\n", globalVar);
}
// file2.c
extern int globalVar; // 声明globalVar,允许在file2.c中访问它
extern void func(); // 声明func函数
int main() {
printf("%d\n", globalVar); // 可以访问globalVar
func(); // 可以调用func函数
return 0;
}
区别总结:
作用域:内部链接的标识符仅在其定义的文件内部可见;外部链接的标识符可以在多个文件中通过适当的声明被访问。
默认行为:如果不使用
static
关键字,C语言中的标识符默认具有外部链接。使用static
关键字则会创建具有内部链接的标识符。使用场景:内部链接适合于那些不需要在多个文件间共享的变量或函数,例如文件内部的辅助函数或变量。外部链接适合于需要在多个文件中共享的变量或函数。
理解和正确使用内部和外部链接对于编写清晰、模块化的代码非常重要。