当前位置: 首页 > news >正文

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关键字则会创建具有内部链接的标识符。

  • 使用场景:内部链接适合于那些不需要在多个文件间共享的变量或函数,例如文件内部的辅助函数或变量。外部链接适合于需要在多个文件中共享的变量或函数。

理解和正确使用内部和外部链接对于编写清晰、模块化的代码非常重要。

http://www.dtcms.com/a/294879.html

相关文章:

  • Spring事务注解详解:确保你的应用数据的一致性
  • 解决BAPI_ACC_DOCUMENT_POST 功能范围输入不生效问题
  • OpenAI o系列模型Responses接口开发Python代码示例
  • 【机器学习深度学习】生成式模型的评估与验证
  • linux驱动开发笔记--GPIO驱动开发
  • iTwin 几何属性获取
  • RAG实战指南 Day 22:混合检索策略实现
  • 认识linux进程内存布局以及与命令行参数和环境变量的关系
  • java 位运算转换 bit operator convert
  • WTL 桌面开发入门
  • Medical | 批次 批号 批准文号
  • 直接偏好优化(DPO):原理、演进与大模型对齐新范式
  • git查看两个commit之间有哪些Pull Request
  • 【盘古100Pro+开发板实验例程】FPGA学习 | Modelsim 的使用和 do 文件编写
  • 如何通过内网穿透,访问公司内部服务器?
  • 企业选择将服务器放在IDC机房托管的优势
  • Python 程序设计讲义(7):Python 的基本数据类型——整数类型
  • 什么是HTTP长连接、短连接?谁更能抗DoS攻击?
  • Vue 中 :value 和 :value.sync 的区别
  • La Création du C++ : Une Épopée dans l‘Évolution de la Programmation
  • Encore.ts:下一代高性能 TypeScript 后端框架的崛起
  • 后仿之 SDF优先级和相关概念
  • Kubernetes 服务发布进阶
  • 大模型开发
  • 图的BFS和DFS
  • 优化 Elasticsearch JVM 参数配置指南
  • 网安-SQL注入-sqli-labs
  • 前端Web性能核心指标全解析与优化实战指南
  • Mermaid流程图
  • netstat -tunlp | grep的作用