C 可能是最广为人知的编程语言。 它被用作世界各地计算机科学课程的参考语言,并且可能是 Python 和 Java 中人们在学校学习最多的语言。
C 可能是最广为人知的编程语言。 它被用作世界各地计算机科学课程的参考语言,并且它可能是人们在学校中与 Python 和 Java 一起学习最多的语言。
我记得它是继 Pascal 之后我的第二个编程语言。
我记得它是继 Pascal 之后的第二种编程语言。
C 不仅仅是学生用来学习编程的工具。 它不是一种学术语言。 我想说它不是最简单的语言,因为 C 是一种相当低级的编程语言。
C 不仅仅是学生学习编程的工具。 这不是一种学术语言。 我想说它不是最简单的语言,因为 C 是一种相当低级的编程语言。
如今,C 语言广泛应用于嵌入式设备,并且为大多数使用 Linux 构建的互联网服务器提供支持。 Linux 内核是使用 C 构建的,这也意味着 C 为所有 Android 设备的核心提供动力。 我们可以说 C 代码运行着整个世界的很大一部分。 现在。 非常了不起。
如今,C 语言广泛应用于嵌入式设备,并为大多数使用 Linux 构建的互联网服务器提供支持。 Linux内核是使用C构建的,这也意味着C是所有Android设备的核心。 可以说,C代码在整个世界上占有很大的份额。 立即地。 相当了不起。
当它被创建时,C 被认为是一种高级语言,因为它可以跨机器移植。 今天,我们理所当然地认为我们可以在 Windows 或 Linux 上运行在 Mac 上编写的程序,也许使用 Node.js 或 Python。 曾几何时,情况根本不是这样的。 C 带来的是一种易于实现的语言,具有可以轻松移植到不同机器的编译器。
当 C 创建时,它被认为是一种高级语言,因为它可以跨机器移植。 今天,也许理所当然,我们可以在 Windows 或 Linux 上运行在 Mac 上编写的程序,也许使用 Node.js 或 Python。 曾几何时,情况并非如此。 C带来的是一种易于实现的语言,带有可以轻松移植到不同机器上的编译器。
我说编译器:C 是一种编译型编程语言,就像 Go、Java、Swift 或 Rust。 其他流行的编程语言如 Python、Ruby 或 JavaScript 都是解释型的。 区别是一致的:编译语言生成可以直接执行和分发的二进制文件。
我说编译器:C 是一种编译型编程语言,如 Go、Java、Swift 或 Rust。 其他流行的编程语言如Python、Ruby或JavaScript也可以被解释。 区别是一致的:编译语言产生可以直接执行和分发的二进制文件。
C 不被垃圾回收。 这意味着我们必须自己管理内存。 这是一项复杂的任务,需要投入大量精力来防止错误,但这也使得 C 非常适合为 Arduino 等嵌入式设备编写程序。
C 不被垃圾回收。 这意味着我们必须自己管理内存。 这是一项复杂的任务,需要投入大量精力来防止错误,但它也是为 Arduino 等嵌入式设备编写 C 程序的理想语言。
C 语言并没有隐藏底层机器的复杂性和功能。 一旦你知道自己能做什么,你就会拥有很大的力量。
C 语言并没有隐藏底层机器的复杂性和强大功能。 一旦你知道自己能做什么,你就会拥有很大的力量。
我现在想介绍第一个 C 程序,我们将其称为“Hello,World!”
我现在要介绍第一个C 程序,我们称之为“Hello, World!”。
你好ç
你好ç
#include
int main(void) {
printf("Hello, World!");
}
我们来描述一下程序源代码:我们首先导入stdio库(名称代表标准输入输出库)。
我们来描述一下程序源码:我们首先导入stdio库(名字代表标准输入输出库)。
该库使我们能够访问输入/输出函数。
该库使我们能够访问输入/输出功能。
C 的核心是一种非常小的语言,任何不属于核心的部分都由库提供。 其中一些库是由普通程序员构建的,并可供其他人使用。 编译器中内置了一些其他库。 就像 stdio 和其他人一样。
C 是一种非常小的语言,它的核心是任何不属于核心的部分。 其中一些库是由普通程序员构建的并可供其他人使用。 该编译器还内置了几个其他库。 就像 stdio 和其他人一样。
stdio 是提供 printf() 函数的库。
stdio 是一个提供 printf() 函数的库。
该函数被包装到 main() 函数中。 main() 函数是任何 C 程序的入口点。
该函数包含在 main() 函数中。 main() 函数是任何 C 程序的入口点。
但到底什么是函数呢?
但什么是函数呢?
函数是一种接受一个或多个参数并返回单个值的例程。
函数是一种接受一个或多个参数并返回单个值的例程。
对于 main() 来说,该函数没有参数,并返回一个整数。 我们使用 void 关键字作为参数,使用 int 关键字作为返回值。
对于 main(),该函数不带任何参数并返回一个整数。 我们确保使用 void 关键字作为参数,使用 int 关键字作为返回值。
该函数有一个用大括号括起来的函数体,函数体内部包含函数执行其操作所需的所有代码。
该函数有一个用大括号括起来的函数体,函数体内部包含函数执行其操作所需的所有代码。
如您所见,printf() 函数的编写方式有所不同。 它没有定义返回值,我们传递一个用双引号括起来的字符串。 我们没有指定参数的类型。
正如您所看到的,printf() 函数的编写方式有所不同。 它没有定义返回值,我们向它传递一个用双引号括起来的字符串。 我们没有指定参数的类型。
那是因为这是一个函数调用。 在 stdio 库中的某个地方, printf 被定义为
那是因为这是一个函数调用。在 stdio 库中的某个地方, printf 被定义为
int printf(const char *format, ...);
您现在不需要理解这意味着什么,但简而言之,这就是定义,当我们调用 printf("Hello, World!"); 时,这就是函数运行的地方。
你不需要知道这意味着什么,但无论如何,这就是定义,当我们调用 printf("Hello, World!"); 时 ,这就是函数运行的地方。
我们上面定义的 main() 函数:
我们上面定义的 main() 函数:
#include
int main(void) {
printf("Hello, World!");
}
当程序执行时,将由操作系统运行。
当程序执行时,将由操作系统运行。
我们如何执行一个C程序?
我们如何执行一个C程序?
如前所述,C 是一种编译语言。 要运行该程序,我们必须首先对其进行编译。 任何 Linux 或 macOS 计算机都已内置 C 编译器。 对于 Windows,您可以使用适用于 Linux 的 Windows 子系统 (WSL)。
正如前面提到的,C 是一种编译语言。 要运行这个程序,我们必须首先编译它。 任何 Linux 或 macOS 计算机都已经内置了 C 编译器。 对于 Windows,您可以使用适用于 Linux 的 Windows 子系统 (WSL)。
无论如何,当您打开终端窗口时,您可以键入 gcc,并且此命令应该返回一个错误,表明您没有指定任何文件:
无论如何,当您打开终端窗口时,您可以键入 gcc,并且此命令应该返回一个错误,指出未指定文件:
那挺好的。 这意味着C编译器已经存在,我们可以开始使用它了。
非常好。 这意味着 C 编译器已经存在,我们可以开始使用它了。
现在将上面的程序输入到 hello.c 文件中。 您可以使用任何编辑器,但为了简单起见,我将在命令行中使用 nano 编辑器:
现在,将上面的程序输入到 hello.c 文件中。 您可以使用任何编辑器,但为了简单起见,我将从命令行使用 nano 编辑器:
输入程序:
输入程序:
现在按 ctrl-X 退出:
现在按 ctrl-X 退出:
按 y 键确认,然后按 Enter 确认文件名:
按 y 键确认,然后按 Enter 确认文件名:
就这样,我们现在应该回到终端了:
就这样,我们现在应该回到终端了:
现在输入
立即进入
gcc hello.c -o hello
该程序应该不会给你任何错误:
该程序不应给您任何错误:
但它应该生成一个 hello 可执行文件。 现在输入
但应该已经生成了一个hello可执行文件。现在输入
./hello
运行它:
运行:
我在程序名称前面添加 ./,以告诉终端该命令位于当前文件夹中
我在程序名称之前添加 ./ 来告诉终端该命令位于当前文件夹中
惊人的!
奇妙!
现在如果你调用 ls -al hello,你可以看到该程序的大小只有 12KB:
现在,如果你调用 ls -al hello ,你可以看到程序的大小只有 12KB:
这是 C 语言的优点之一:它经过高度优化,这也是它对于资源非常有限的嵌入式设备如此有利的原因之一。
这是C语言的优点之一:它是高度优化的,这也是它对于资源非常有限的嵌入式设备如此出色的原因之一。
查看我关于 C 的其他一些教程:
查看我关于 C 的其他一些教程:
译自:
单片机c语言+编程c语言