Cprogramming 简明教程

C Language - Overview

C 是一种通用高级语言,最初由 Dennis M. Ritchie 开发,用于在贝尔实验室开发 UNIX 操作系统。C 最初于 1972 年在 DEC PDP-11 计算机上首次实现。

1978 年,Brian Kernighan 和 Dennis Ritchie 制作了 C 的第一个公开描述,现称为 K&R 标准。

UNIX 操作系统、C 编译器以及基本上所有 UNIX 应用程序都是用 C 编写的。C 因各种原因现已成为一种广泛使用的专业语言 −

  1. Easy to learn

  2. Structured language

  3. It produces efficient programs

  4. 它可以处理低级活动

  5. 它可以在各种计算机平台上编译

Facts about C

  1. C 被发明用于编写一个名为 UNIX 的操作系统。

  2. C 是 B 语言的后继者,B 语言在 20 世纪 70 年代初引入。

  3. 该语言在 1988 年由美国国家标准协会 (ANSI) 正式化。

  4. UNIX 操作系统完全用 C 编写。

  5. 如今,C 是使用最广泛最流行的系统编程语言。

  6. 大多数最先进的软件都是使用 C 实现的。

  7. 当今最流行的 Linux 操作系统和 RDBMS MySQL 是用 C 编写的。

Why Use C Language?

C最初用于系统开发工作,尤其是构成操作系统的程序。C被采纳为一种系统开发语言,因为它产生的代码运行速度几乎与汇编语言编写的代码一样快。

C的使用的一些示例可能是−

  1. Operating Systems

  2. Language Compilers

  3. Assemblers

  4. Text Editors

  5. Print Spoolers

  6. Network Drivers

  7. Modern Programs

  8. Databases

  9. Language Interpreters

  10. Utilities

C涵盖了编程的所有基本概念。这是一个基础或母语言来学习面向对象的编程语言,如 CJava.Net 等。许多现代编程语言,如C、Java和 Python 都借鉴了C的语法和概念。

它提供了对硬件的精细控制,使其高效。因此,C通常用于开发系统级程序,如设计 Operating Systems 、操作系统内核等,也用于开发文本编辑器、编译器、网络驱动程序等应用程序。

C程序是可移植的;因此,它们可以在不同的平台上运行,而无需进行重大的修改。

在编程史上,C作为一种基础编程语言发挥了关键作用。然而,与更现代的语言相比,它在应用程序开发方面的受欢迎程度有所下降。这可能归因于它的低级特性以及存在更高层次的语言,这些语言提供了更丰富的预先存在的抽象和能力。尽管如此,在诸如最优性能、系统资源的细致管理以及对可移植性的迫切需要等因素至关重要的领域中,C编程语言仍然不可或缺。

Advantages of C Language

以下是C语言的优点−

  1. Efficiency and speed −C以高性能和高效而闻名。它可以让你在低层管理内存,并允许直接访问硬件,使其成为对速度和经济资源利用有要求的应用程序的理想选择。

  2. Portable −C程序可以在不同的平台上编译和执行,几乎无需或无需修改。这种可移植性是由于该语言已经标准化,并且编译器可以在全球不同的操作系统上使用。

  3. Close to Hardware −C允许通过使用 pointers 和低级操作直接操作硬件。这使其适合于系统编程和开发需要对硬件资源进行细粒度控制的应用程序。

  4. Standard Libraries −对于 input/output operationsstring 操作和数学计算等常见任务,C附带了一个大型标准库,通过利用预先构建的函数,它可以帮助开发人员更有效地编写代码。

  5. Structured Programming −C有助于将代码组织成模块化且易于理解的 structures 。通过 functionsloopsconditionals ,开发人员可以生成清晰且易于维护的代码。

  6. Procedural Language −C遵循一种过程范例,对于某些类型的编程任务通常更简单、更直接。

  7. Versatility −C语言是一种多功能编程语言,可用于各种类型的软件,如系统应用程序、编译器、固件、应用程序软件等。

Drawbacks of C Language

以下是C语言的缺点/缺陷−

  1. Manual Memory Management −C语言需要手动内存管理,开发人员必须负责显式分配和释放内存。

  2. No Object−Oriented Feature −如今,大多数编程语言都支持OOP功能。但C语言不支持它。

  3. No Garbage Collection −C语言不支持垃圾回收的概念。开发人员需要手动分配和释放内存,这容易出错并导致内存泄漏或内存使用效率低下。

  4. No Exception Handling −C语言没有提供任何用于处理异常的库。开发人员需要编写代码来处理所有类型的期望。

Applications of C Language

以下是 C 语言的应用 −

  1. System Programming − C 语言用于开发接近硬件的系统软件,如操作系统、固件、语言翻译器等。

  2. Embedded Systems − C 语言用于各种设备(如微控制器、工业控制器等)的嵌入式系统编程。

  3. Compiler and Interpreters − C 语言是开发语言编译器和解释器的常用语言。

  4. Database Systems − 由于 C 语言高效且快速,可用于低级内存操作。这用于开发 DBMS 和 RDBMS 引擎。

  5. Networking Software − C 语言用于开发网络软件,如协议、路由器和网络实用程序。

  6. Game Development − C 语言广泛用于开发游戏、游戏应用程序和游戏引擎。

  7. Scientific and Mathematical Applications − C 语言高效开发需要科学计算的应用程序。诸如仿真、数值分析和其他科学计算的应用程序通常使用 C 语言开发。

  8. Text Editor and IDEs − C 语言用于开发文本编辑器和集成开发环境,如 Vim 和 Emacs。

Getting Started with C Programming

要有效地学习 C,我们首先需要了解其结构。每个编程语言都有自己的编程结构。C 程序的典型结构包括几个部分。以下步骤展示了常规 C 程序的 C 结构 −

Include Header Files

包含必要的文件头,其中包含函数声明、 constants 和宏,可在一个或多个源代码文件中使用。一些流行的文件头如下 −

stdio.h − 提供类似 printf 和 scanf 的输入和输出函数。

#include <stdio.h>

stdlib.h − 包含涉及内存分配、rand 函数和其他实用函数的函数。

#include <stdlib.h>

math.h − 包含数学函数,如 sqrtsincos 等。

#include <math.h>

string.h − 包含用于操作字符串的函数,如 strcpystrlen 等。

#include <string.h>

ctype.h − 用于测试和映射字符的函数,如 isalphaisdigit 等。

#include <ctype.h>

stdbool.h − 定义布尔值数据类型和值 truefalse

#include <stdbool.h>

time.h − 包含用于处理日期和时间的函数。

#include <time.h>

limits.h − 定义各种特定于实现的整数类型限制。

#include <limits.h>

Macros and Constants

在整个程序中定义将要使用的宏或常量。宏和常量是可选项。

#include <stdio.h>
#define PI 3.14159
int main() {
   float radius = 5.0;
   float area = PI * radius * radius;

   printf("Area of the circle: %f\n", area);
   return 0;
}
Area of the circle: 78.539749

Global Declarations in C

全局声明是可选的:

int globalVariable;
void sampleFunction();

声明全局 variables 和将在程序的不同部分使用的函数。参阅以下 example

#include <stdio.h>

// Global variable declaration
int globalVariable;

int main()
{
   // Rest of the program
   return 0;
}

Main Function

每个 C 程序都必须有一个 main function 。它是该程序的入口点。参阅以下 example

int main() {
   float radius = 5.0;
   float area = PI * radius * radius;

   printf("Area of the circle: %f\n", area);
   return 0;
}

Functions in C

根据需要定义其他函数。main 函数可以调用这些函数。参阅以下 example

#include <stdio.h>

// Global function declaration
void samplefunction();

int main() {
   // Programming statements
   return 0;
}

// Global function definition
void samplefunction () {
   // Function programming statements implementation
}

C 程序的行数可以从 3 行到数百万行,并且应该写成一个或多个具有扩展名 ".c" 的文本文件;比如,hello.c。您可以使用 "vi""vim" 或任何其他文本编辑器将您的 C 程序写到文件中。

本教程假设您知道如何编辑文本文件以及如何在程序文件中编写源代码。