1. 首页 > 汽车 >

c 编译器(c编译器有哪些?)

c语言在编译器中显示短句

二十世纪八十年代,美国标准局为了避免各开发厂商用的C语言语法产生异,给C语言制定了一套完整的美国标准语法,称为ANSI C。作为C语言最初的标准。[3]2011年12月8日,标准化组织(ISO)和电工委员会(IEC)发布的C11标准是C语言的第三个标准,也是C语言的标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

1. C语言编译过程中为什么显告 加上头文件#include

c  编译器(c编译器有哪些?)c 编译器(c编译器有哪些?)


printf函数所在的头文件

main可上 return 0;应有返回

加在一起就是

#include

int main()

{float a,b,s;

a=10.5;

b=5.3;

s=ab;

printf("a=%f,b=%f,s=%f",a,b,s);

return 0;

}注意留一行空行,gcc -Wall无

2. C语言如何隔几秒再显示下一句话

首先包含这个头文件包

定义2个时间节点。

time_t start,end;//记时标示符

如果你是知道时间的长度的那仅仅好办了。

这样就先给start赋值为当前系统时间,然后end加上输出时间的长度。

在用循环

for(int i=start;i 比较两个时间,是否前一个小于后一个。

operator >;= 比较两个时间,是否前一个大于等于后一个。

operator tm_hour;

2. 以固定的时间格式获得日期和时间:看清这两个函数的参和返回值的类型

char asctime(const struct tm timeptr);

char ctime(const time_t timer);

1.将日历时间直接转换为 固定的时间格式的日期和时间

char jieguo;

time_t lt;

lt =time(NULL);

jieguo =ctime(<);

cout

3. 在cmd中输入哪几句话把c语言编译和运行出来

1、在控制台编译运行一个C程序,在windows上的c语言编译器为cl.exe,在linux平台上的c语言编译器是gcc。在命令提示符中,执行cl test.c(test.c是c语言源码文件)。用cl编译器编译main.cxx的谁的,并且执行生成的程序main.exe。

2、例如:

gcc:

gcc -c test.c -o test.Code:Blocks。o

gcc test.o -o test.exe

vc:

cl /c /TC /O1 /MD test.c

link test.obj

编译gui程序时,连接还需要指定静态库文件.

1、首先打开Microsoft Visual C++软件,单击“文件”菜单->;“新建”,新建一个文件,文件名后缀为.c。

2、新建好文件后,输入如下内容。

3、然后我们在{ }之间输入函数的内容,我们先定义变量c1,变量的类型为char,字符型。

4、用printf语句进行输出。

5、当内容输入好后,我们点击图中工具按钮,对程序进行检测,如果没有错误,会得到下图所示效果。

6、检测到没有错误后,点击运行(红色感叹号)。

7、弹出的黑色窗口中为最终结果,可以看到大写字母“A”显示在上面。

在c语言中“可执行程序”是什么意思?

c++基本上兼容cc代码基本上都可以当c++编译。有些特殊情况需要改改。

C语言中的可执行程序就是将用文本信息表示的程序翻译成计算机认识的二进制代码串。

首先,我们先用C语言把源代码写好,然后交给C语言编译器。C语言编译器内部分为前端和后端。

(1)编译器前端

前端负责将C语言代码进行词法和语法上的解析,然后可以生成中间代码。

中间代码这部分不是必须的,但是它能够为程序的跨平台移植带来诸多好处。比如,同样的一份C语言源代码在一台计算机上编译完之后,生成一套中间代码。

然后针对不同的目2、 有的系统 用 env 查环境变量,也查 include 或 查 lib 路径名,路径名里就可以看出编译器装在哪里。标平台(比如要将这一套代码分别编译成 ARM 处理器的二进制机器码、MIPS 处理器的二进制机器码以及 x86 处理器的二进制机器码),只需要编写相应目标平台的编译器后端即可。

所以,这么做就可以把编译器的前端与后端剥离开来(这在软件工程上又可称为解耦合),不同处理器厂商可以针对自家的处理器特性,对中间代码生成到目标二进制代码的过程再度进行优化。

(2)编译器后端

接下来,由C语言编译器后端生成源文件相应的目标文件。

目标文件在 Windows 系统上往往是.obj文件,而在 Unix/Linux 系统上往往是.o文件,C语言的源文件在所有平台上都统一用.c文件表示。

(3)链接器

,对于各个的目标文件,通过连接器将它们合并成一个最终可执行文件。

扩展资料:

起初,C语言没有标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。

K&R C主要介绍了以下特色:

长整数(long int)类型

无符号整数(unsigned int)类型

把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =- 10,使得处理上产生混淆。

即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最 准要求,许多老旧的编译器仍然运行K&R C的标准。

1983年,美国标准协会(ANSI)成立了一个委员会X3J11,来制定 C语言标准。

,美国标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-1989 "Programming Language C"。因为这个标准是通过的,所以一般简称C89标准。有些人也简称ANSI C,因为这个标准是美国标准协会(ANSI)发布的。

1990年,标准化组织(ISO)和电工委员会(IEC)把C89标准定为C语言的标准,命名为ISO/IEC 9899:1990 - Programming languages -- C 。因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。

1994年,标准化组织(ISO)和电工委员会(IEC)发布了C89标准修订版,名叫ISO/IEC 9899:1990/Cor 1:1994 ,有些人简称为C94标准。

1995年,标准化组织(ISO)和电工委员会(IEC)再次发布了C89标准修订版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity ,有些人简称为C95标准。

C99标准

1999年1月,标准化组织(ISO)和电工委员会(IEC)发布了C语言的新标准,名叫ISO/IEC 9899:1999 - Programming languages -- C ,简称C99标准。这是C语言的第二个标准。

参考资料:

学C语言数据结构了用何种编译器好?

如果是Win32 Application,就不应该写main函数,而是写WinMain函数了。

分类: 电脑/网络 >> 窗体底端程序设计 >> 其他编程语言

问题描述:

刚学C时一直用turbo c编译器,之后改用turbo c for windows,都觉的编译起来效果欠佳,请问大家有好介绍的么?

解析:

VC

C语言与C++语言能够共用吗?

初学者建议在windows下学习,这样可以专注于语言本身,而不是开发工具的使用。编译器可以使用vc6.0

简单来说是可以共用的。具体取决于你使用的编译器 使用C编译器:

.C,或.cxx 为后缀的文件,是C++源代码文件;

C编译器是不支持编译C++代码的。因为C++有很多C语言标准没有定义的扩展。所以同时存在纯C和C++代码的话是不能通过C编译器的编译的。

使用C++编译器

C++是C语言的扩展延伸,C++设计之初就考虑了完全兼容C语言的。所以纯C或是混合C/C++项目都是可以被C++编译器所支持的。 总的来说,只要使用C++编译器就不用担心C/C++混编的问题。

C和C++是两种语言,一般没有可比性,由于C++完全兼容C语言,所以很多C++项目开发其实是C和C++混合开发的,很难完全划清界限。但从复杂度上来说,由于OO和Template技术的加入,C++比C语言更加复杂。下面列举一下两种语言的主要异:面向领域异:C语言面向底层应用,如内核开发、单片机、DSP等嵌入式领域C++面向游戏、或轻量级客户端开发,如迅雷、QQ这一类开发方式异:C语言主要基于面向过程开发,主要是大量的函数嵌套与调用C++是基于面向对象的方式以及泛型技术开发基础环境异:C语言有C标准库以及各领域APIC++ 有STL BOOST以及各领域API 现在C++编译器兼容C语言标准,如VC GCC。但C编译器不兼容C++标准,如dsp,51等。

首先要先理解下C/C++。 C是非面向对象的语言,C++ 是面向对象的。也就是说,C++ 可以实体化一个控件,而C 不行。打个比方就像是酒店里面,C++是前台的服务,C是后台的服务。前台可见,后台不可见。两者都是服务,只不过性质的同而已。但是前台的要求更高(象是,外貌啊,语言表达啊。。。 我随便说的哈~ ) ,而后台就没啥要求了。也就是说,只能C++兼容C(前台去后台),C不能兼容C++(后台来前台)。

是的,完全一样。C++就是在C的基础上增加了面向对象的一些属性和方法。在编译环境下它们是通用的,没有区别。

当然可以。

win10有没有C语言编译器?

1、C语言的编译器有多种,功能基本一致,但是也稍有别。例如,对某些语句的解释不同,导致程序运算的结果不同。

Visual Studio 2010、2013、2015。

Dev C++。

notepad++。

大部分都是支持的 VC有些老了 不是很。

另外有一个国人做的 啊哈C 非常小 安装包小于10M,功能也还可以。

WIN10更新以后,不能再用VC6了(据说这是微软故意的,因为新版的VS都收费)VC6以上版本均可使用:

VS2008、VS2010、VS2012、VS2013、VS2015、VS2017 RC版性能从高到低,功能从低到高,VC6的性能是的,可惜WIN10不支持了。

Windows 10是美国微C++包含C,C++的某些特牲比C先进,C++分两大部分:过程谝程和面向对象编程。软公司研发的跨平台及设备应用的作系统。是微软发布的一个Windows版本。 Windows 10共有7个发行版本,分别面向不同用户和设备。

截止至2017年12月20日,Windows 10正式版已更新至秋季创意者10.0.16299.98[4] ,快速预览版更新至10.0.17063。

2015年1月21日,微软在发布新一代Windows系统,并表示向运行Windows7、Windows 8.1以及Windows Phone 8.1的所有设备提供,用户可以在Windows 10发布后的年享受免费升级服务。2月13日,微软正式开启Windows 10手机预览版更新推送。

Dev C++、VC++都可以在Win10上运行。

Linux下gcc编译介绍

Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。

.a为后缀的文件,是由目标文件构成的档案库文件;

.h为后缀的文件,是程序所包含的头文件;

.i 为后缀的文件,是已经预处理过的C源代码文件;

.ii为后缀的文件,是已经预处理过的C++源代码文件;

.o为后缀的文件,是编译后的目标文件;

.s为后缀的文件,是汇编语言源代码文件;

.S为后缀的文件,是经过预编译的汇编语言源代码文件。

Gcc的执行过程

虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。

命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。

Gcc的基本用法和选项

在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。

-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。

-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。

-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。

-O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。

-O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。

-Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况∶

B)#include “myinc.h”

-Ldirname,将dirname所指出的目录加入到程序函数档案库文件的目录列表中,是在连接过程中使用的参数。在预设状态下,连接程序ld在系统的预设路径中(如/usr/lib)寻找所需要的档案库文件,这个选项告诉连接程序,首先到-L指定的目录中去寻找,然后到系统预设路径中寻找,如果函数库存放在多个目录下,就需要依次使用这个选项,给出相应的存放目录。

-lname,在连接时,装载名字为“libname.a”的函数库,该函数库位于系统预设的目录或者由-L选项确定的目录下。例如,-lm表示连接名为“libm.a”的数学函数库。

上面我们简要介绍了gcc编译器最常用的功能和主要参数选项,更为详尽的资料可以参看Linux系统的联机帮助。

假定我们有一个程序名为test.c的C语言源代码文件,要生成一个可执行文件,最简单的办法就是∶

gcc test.c

这时,预编译、编译连接一次完成,生成一个系统预设的名为a.out的可执行文件,对于稍为复杂的情况,比如有多个源代码文件、需要连接档案库或者有其他比较特别的要求,就要给定适当的调用选项参数。再看一个简单的例子。

整个源代码程序由两个文件testmain.c 和testsub.c组成,程序中使用了系统提供的数学库,同时希望给出的可执行文件为test,这时的编译命令可以是∶

gcc testmain.c testsub.c □lm □o test

Gcc编译器如果发现源程序中有错误,就无法继续进行,也无法生成最终的可执行文件。为了便于修改,gcc给出错误资讯,我们必须对这些错误资讯逐个进行分析、处理,并修改相应的语言,才能保证源代码的正确编译连接。gcc给出的错误资讯一般可以分为四大类,下面我们分别讨论其产生的原因和对策。

错误资讯∶文件source.c中第n行有语法错误(syntex errror)。这种类型的错误,一般都是C语言的语法错误,应该仔细检查源代码文件中第n行及该行之前的程序,有时也需要对该文件所包含的头文件进行检查。有些情况下,一个很简单的语法错误,gcc会给出一大堆错误,我们最主要的是要保持清醒的头脑,不要被其吓倒,必要的时候再参考一下C语言的基本教材。

第二类∶头准确的来说,这和编译器的开发有关,不用说太细,很麻烦怕你不懂。你现在假设个编译器是用会变写出来的,它的功能很简单,就是解释简单一种类似于C语言的高级语言,但是这种所谓的高级语言还没有完全拥有C语言的所有特性。只有比较简单核心功能,比如能把文本文件的高级语言转换成机器代码并且执行。文件错误

错误资讯∶找不到头文件head.h(Can not find include file head.h)。这类错误是源代码文件中的包含头文件有问题,可能的原因有头文件名错误、指定的头文件所在目录名错误等,也可能是错误地使用了双引号和尖括号。

第三类∶档案库错误

错误资讯∶连接程序找不到所需的函数库,例如∶4. C语言中char类型的数据输入和输出时怎么控制啊

ld: -lm: No such file or directory

这类错误是与目标文件相连接的函数库有错误,可能的原因是函数库名错误、指定的函数库所在目录名称错误等,检查的方法是使用find命令在可能的目录中寻找相应的函数库名,确定档案库及目录的名称并修改程序中及编译选项中的名称。

第四类∶未定义符号

错误资讯∶有未定义的符号(Undefined symbol)。这类错误是在连接过程中出现的,可能有两种原因∶一是使用者自己定义的函数或者全局变量所在源代码文件,没有被编译、连接,或者干脆还没有定义,这需要使用者根据实际情况修改源程序,给出全局变量或者函数的定义体;二是未定义的符号是一个标准的库函数,在源程序中使用了该库函数,而连接过程中还没有给定相应的函数库的名称,或者是该档案库的目录名称有问题,这时需要使用档案库维护命令ar检查我们需要的库函数到底位于哪一个函数库中,确定之后,修改gcc连接选项中的-l和-L项。

排除编译、连接过程中的错误,应该说这只是程序设计中最简单、最基本的一个步骤,可以说只是开了个头。这个过程中的错误,只是我们在使用C语言描述一个算法中所产生的错误,是比较容易排除的。我们写一个程序,到编译、连接通过为止,应该说刚刚开始,程序在运行过程中所出现的问题,是算法设计有问题,说得更玄点是对问题的认识和理解不够,还需要更加深入地测试、调试和修改。一个程序,稍为复杂的程序,往往要经过多次的编译、连接和测试、修改。下面我们学习的程序维护、调试工具和版本维护就是在程序调试、测试过程中使用的,用来解决调测阶段所出现的问题。窗体顶端

C语言编译器是用来做什么的?

.c为后缀的文件,C语言源代码文件;

1.

#include

C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。

2.

C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的作。由于C语言实现了对硬件的编程作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

将C语言源代码编译成计算机可直接运行的目标代码或机器码

说白了就是把更加贴近于人类语言的程序语言翻译成更贴近计算机的机器语言

就是把C语言代码编译成程序,那样就可以执行了~

windows11自带c语言编译器在哪

这个没有问题的。

1、在命令窗 打 Gcc的错误类型及对策set include 你就可以看到 包含文件的文件夹路径,路径名里就可以看出编译器装在哪里。

C,编译器问题????

Gcc最基本的用法是∶gcc [options] [filenames]

是说你的编译选项其中options就是编译器所需要的参数,filenames给出相关的文件名称。里有一个 -fallow-single-precision

把这个选项去掉才行

你把扩展名改成.c,可能是你用了.cpp但是这个不是c++程序的

c语言编译没有错误,连接有错误是怎么回事?程序本身没错

1 编译阶段,执行的是对单个文件的转换,从源代码转换成二进制文件。

2 链接如果你不知道怎么去掉这个编译选项,那简单的办法就是换个编译器。阶段,将每个源文件转成的二进制文件,及相关的系统库文件共同打包生成可执行文件。

3 从定义上可以看出,链接阶段,出现错误有两种可能:

1) 函数中引用了不存在的函数。

2) 这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。编译环境有问题,导致ld出错。

你好,不知道你以前改过有没有修改过工程里面的设置

,那里应该为console。如果不是你的问题所在,请发你连接错误地截图或者原因,继续追问

你建错工程了,应该是Win32 Console Application

你选错了工程,应该选console Application……

程序没有显示有错误啊,直接执行就行了

C语言编译器是什么?

C语言是一门面向过程的计算机编程语言,与C++、Ja等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。[2]

例:

#include

int main() {

printf("Hello,worA)#includeld!");

return其中,-lm表示连接系统的数学库libm.a。 0;

}编译运行将输出: Hello,world!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息