C语言开发之Hello,World来龙去脉
来源:互联网 发布:摇钱树网吧计费软件 编辑:程序博客网 时间:2024/05/17 04:07
引言
几乎所有的技术类书籍,都是从经典的Hello,World程序出发,带领大家进入编程世界。我们的示例也不例外,甚至可能会更加“简单”,我们研究的主题就是“Hello,Wrold”的来龙去脉,通过“hello,world”对c语言的学习进行展开,最终扩展到嵌入式领域。我将以自身的切身体会,从一个程序员的角度,以简单易懂的语言来分析这个“简单”的“Hello,World”,首先我们需要做的,就是怎么实现这个简单的“hello,world”代码呢?
Hello,World
代码很简单,就不给大家卖关子了,Hello,World全部代码如下:
/*
Hello Wrold,example
*/
#include<stdio.h>
int main(void)
{
printf("Hello,World\r\n");
return 0;
}
希望没吓着您,总共就6行代码, 但是想要能让他运行,我们还需要做什么操作呢?
代码文件与可执行文件
不管是怎么样的代码,最终都要生成机器(本书的机器只的可能是一台电脑,或者一个手机,或者一个pad)可识别的文件,最终在机器上运行。什么是代码,简单点说就是字节流组成的文本文件(a,b,c,+,1,2,3….),与一个文本文件区别在哪儿呢。普通的一个txt文本文件,在其中输入任何字符汉字符号的组合,他与代码之间的简单的区别就在于,代码是遵循着某种规则的字符串组成的文本,而普通文件你可以按照需要随便组合。另外,如果是c语言程序,需要将文件后缀.txt修改成.c,如果是c++则需要修改成.cpp,否则,在编译的时候,编译器可能要抱怨,输入参数格式有问题。现在可以将上述文件命名为以.c为后缀的任何文件,这边暂且命名为hello.c。
好吧,了解了什么是代码之后,之后的工作都可以交由编译器处理了。编译器就是一个工具,将代码转化成机器可以识别的命令(编译器还有很多其他强大的功能,用到的时候再一一说明)。命令以文件的形式保存在硬盘上,windows系统通常是.exe的后缀,linux系统通常没有后缀(由于本书的另一个目的是想将读者引入嵌入式开发领域,基于现在linux嵌入式需求量大,以及代码开源,所以示例都是基于linux系统进行说明的)。
linux系统运行如下两条命令:
gcc hello.c
gcc是什么呢?gcc是linux下的一个编译器,暂且理解成一个命令,这个命令会把hello.c转化成机器能够识别的文件,hello.c作为gcc的一个输入参数,我很希望你能知道输入参数是什么意思,如果确实不理解,可以拿绞肉机说明,绞肉机就想相当于gcc,肉就相当于输入参数,在没有肉的情况下,绞肉机是什么事情都干不了的,即使让其工作,他也仅仅在那边空转,只有有了肉,绞肉机才能将肉变成肉馅。明白了吧,那第一条命令产生的肉馅在哪儿呢,要是你跑到hello.c所在的目录你可以会发现多了一个a.out文件,这个就是输出的可执行文件,就是绞肉机输出的肉馅。
./a.out
这条命令,估计你已经猜到第二条命令是干啥用的,把生成的执行文件在对应的机器上运行(不用担心,下节就告诉你什么叫运行)。是的,第二条命令就是执行我们生成的可执行文件,也就是机器可以识别的文件,那么“.”是什么意思呢,这个在linux系统中代表当前的目录,“/”是linux下的目录间的分隔符,跟windos下的相反,windows下为“\”,./a.out代表的意思就是当前目录下a.out,我很希望你知道“当前目录“代表什么意思,如果确实不知道,举个window系统下的例子,在你电脑的某个硬盘的目录下可能存放了一些你想要的视屏,你必须点击鼠标到对应存放视频的目录,当你进入到这个目录之后,现在您所处视频的目录就是当前目录,例如(d:\学习\视频)。好吧,明白了吧。那么为什么输入这样的命令后,就可以执行a.out了呢,这个后面章节会有描述,现在仅仅需要知道,生成的可执行文件都可以用./+可执行文件的形式来执行他。如果我不想用a.out这个默认的名字怎么办,这个简单,在编译的时候,将编译命令增加两个参数:
gcc -o hello hello.c
现在gcc有三个输入参数,o是output 缩写,即输出。如果你喜欢打字的话,你也可以输入如下命令
gcc –-output hello hello.c
这行命令的效果跟上一行是一样的,仅仅的差异,这边没有使用缩写,后面的hello代表了要输出文件的命名了,这边不会生成a.out了,你可以以你想要的任何名字对他命令,即使跟系统的命令命名相同也没关系,但是最好别这样。接下来可以看看运行的效果了。
今天就写到这了,接下来会分析什么叫运行,以及写计算机程序的目的。
- C语言开发之Hello,World来龙去脉
- C语言之hello world
- C语言之hello world
- C语言基础教程之hello world
- “hello world” 开始c语言之旅
- C语言入门之”Hello , World!”
- Clojure语言Eclipse开发之Hello world
- C语言hello world
- C语言Hello world
- C语言 Hello World
- Linux下C语言开发(开篇hello world.)
- Linux下C语言开发(初学者) —— Hello world
- C类语言---Hello World!
- C语言Hello World程序
- C语言编程“Hello,world”
- c语言 printf(" "" Hello world "" ") ;
- c语言hello world开始
- C语言 HELLO WORLD 分析
- POJ-1182 食物链
- 计算机常用术语简写
- PL/SQL计算质数
- poj3295
- [Wikioi 1253]超级市场(疑难题)
- C语言开发之Hello,World来龙去脉
- 我开通博客了
- CString 与数字之间的转换
- 自己做的一个输入输出缓冲池
- C/C++中extern用法
- 香甜的黄油
- 暴力枚举总述
- 高并发量网站解决方案
- AS调用外部嵌入的共享字体