⑴ 用gcc编译器C语言程序的技巧
方法/步骤
1、编写c代码,并输入以下代码,生成文件hello.c
[root@wahoo
test]#
vim
hello.c
#include
<stdio.h>
#define
DISPLAY
"hello
c!"
int
main(void)
{
printf("%s\n",
DISPLAY
);
return
0;
}
ZZ(说明:ZZ当前文件进行快速保存操作)
2、预编译(Preprocessing)
会对各种预处理指令(#include
#define
#ifdef
等#开始的代码行)进行处理,删除注释和多余的空白字符,生成一份新的代码
[root@wahoo
test]#gcc
-E
hello.c
-o
hello.i
E
参数
通知gcc对目标文件进行预编译,这里是对文件hello.c文件
o
参数
是对命令输出结果进行导入操作,这里是把
gcc
-E
hello.c
操作结果输出到文件hello.i(命名要自定义)中进行保存
这个命令执行完后我们目录下多了一个文件hello.i,你可以查阅一下文件的内容。
3、编译(Compilation)
对代码进行语法、语义分析和错误判断,生成汇编代码文件
[root@wahoo
test]#gcc
-S
hello.i
-o
hello.s
S
参数
通知gcc对目标文件进行编译,这里是对文件hello.i文件
通过这一步我们知道
C语言跟汇编的
关系,至于他们之前是如何进行转换的,大家可以进行更深入的学习与探讨。
此时目录下多了一个hello.s文件,内容如图
4、汇编(Assembly)
把汇编代码转换与计算机可认识的二进制文件,要知道计算机只认识0和1呢
[root@wahoo
test]#gcc
-c
hello.s
-o
hello.o
c
参数
通知gcc对目标文件执行指令转换操作
此步骤我们得到文件hello.o
大家也同样打开文件查看一下,这个文件里面几乎没几个字符大家能看懂,这就对了,但大家可以通过这种方法将其转化为我们可读的形式:
[root@wahoo
test]#readelf
-a
hello.o
5、链接(Linking/Build)
通俗的讲就是把多个*.o文件合并成一个可执行文件,二进制指令文件
[root@wahoo
test]#gcc
hello.o
-o
hello
这里我们就得到了一个可以直接在系统下执行的文件
hello
我们也可以对这个文件进行readelf操作,也可以进行二进制指令转汇编的操作
[root@wahoo
test]#objmp
-d
hello
6、程序运行
[root@wahoo
test]#./hello
hello
c!
7、总结:gcc
编译c程序的主要过程包括
预编译->编译->汇编->连接
四个过程,每个过程都分别进行不同的处理,了解了这其中的一些原理,对c编程的理解大有益处
⑵ 如何使用gcc编译器
双击GCC安装包,mingw-get-setup.exe,点击Install安装
2
点击Change选择安装路径,尽量不要有中文和空格,
3
将package 下面的mingw-***和mingw32-***和msys-**。都勾选上,等待下载安装,直到勾选框全部变成土灰色。
找到安装目录的bin目录,将路径右键复制下来。
找到计算机,右键,属性。点击 高级系统设置
找到下面的 环境变量 点击
在系统变量里面找到 Path变量,双击出现下面输入框,在变量值的末尾添加刚刚复制的bin目录,并在最后加上英文状态下 的分号(;)。点击确定。
测试是否安装成功,在cmd命令提示符里面输入 gcc --help 回车键,
出现以下信息,表示安装成功
EditPlus 3 安装完成之后的界面点击File 下的 new C/C++
出现以下测试代码,保存到指定目录,最后不要有空格和中文,我保存到E:/My/Test下面测试。文件名为test.c
命令提示符窗口进入到 E:/MyTest 下 用dir 命令显示当前目录下的所有文件。
使用gcc 命令编译 命令格式 如下 gcc test.c - o test 回车键
编译完成
直接输入test运行,输出hello,world.
测试完成
⑶ c语言gcc/g++编译器如何获取键盘功能键输入(例如方向键,退格等)
so. ealsy
⑷ c语言gcc编译器如何处理不同编码的中文txt文件
纯linux环境下iconv库可以干这些
⑸ 用gcc编c语言怎样输入中文
可不可以输入中文跟scanf没有关系,关键在于操作系统是否支持显示中文字符。
scanf(..);输入中文是可以的
⑹ 如何在在C语言里面输入汉字
定义一个字符串变量,这个变量的值中就可以输入汉字了。
汉字是多字节的,一个char放不下,可以使用字符数组,但需要给数组分配空间,或者使用string
例如:
#include<stdio.h>
intmain(void)
{
chara[7]="你好";
scanf("%*s",a);
printf("%s
",a);
return0;
}
(6)gcc编译器如何输入汉字扩展阅读:
其实从语言学的角度来说,英文是线性的一维语言,而中文是平面的二维语言。而程序恰恰是线性的一维的。也就是说,线性的英文正好能契合线性的程序。所以,中文并不适合现有的编程方式。
然而,未来的发展可能超出你的想象。未来可能会有多维度的量子计算,也许二维的中文反而会比一维的英文更适合。
程序员对比过中文编程和英文编程就会明白,中文编程反而会提高门槛。因为编程的核心根本就不是什么语言,而是程序化思维方式。最简单的并不是英文编程,而是数学符号编程,极度抽象,普通人很难理解,但代码量特别少。
⑺ C语言下,如何将刚才输入的汉字显示出来
#include<iostream.h>
void main()
{char str[100];
cin>>str;
cout<<str<<endl;
}
精简了哈
⑻ linux用gcc编译如何输入中文
linux用gcc编译输入中文:scanf()可以;char s[100];scanf("%s", s);printf("%s", s)。
-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
特点:
它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
⑼ C 语言编程时如何打汉字
直接不就能输入么?你用的什么ide?
vc,dev c++都能直接输入的,tc的话就需要ucdos之类的平台了,不然显示的都是乱码
ucdos是一个汉字系统,如果你经历过dos,应该不会陌生的。不过现在都用xp了,最好还是换个windows下的ide比较方便点。