c与c语言关系
❶ c语言和C 是什么关系啊
这是第一次用C语言来编写操作系统的内核,或者换一个说法:这是第一次操作系统的内核不是由汇编语言编写的。Dennis Ritchie和Brian Kernighan(两个大拿)在1978年出版了《C程序设计语言》(The C Programming Language,经常简称为“白皮书”或“K&R”)。
1980年以后,贝尔实验室使得C变得更为广泛的流行,使得C一度成为了操作系统和应用程序编程的首选。甚至到今天,它仍被广泛用于编写操作系统以及作为广泛的计算机教学语言。
❷ c语言和c程序是什么关系
C语言是一门编程语言
C程序一般是使用C语言写出来代码编译后的可执行文件
❸ c语言和c++有什么关系
如果你是刚开始学习一门语言,相信下面几条对你会有帮助!
1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++98,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个 "不再 ")有C++语法是C语法的超集的说法。
2. C++/CLI 和 C# 是微软的,它们与C和C++没有任何关系,虽然部分语法相似。但哪两种语言不相似呢?都是abc这26个字母。
3. 不要使用TC/TC++/BC/CB等古老的编译器来学习C/C++,因为它们太古老了,不支持新的C/C++标准。不要使用CBX/VC++6.0/VC2005等对C/C++标准支持不好的编译器,虽然这些编译器适合工作,但不适合学习,因为它们中的语法陷阱很多。记住唯一适合学习的编译器是gcc/mingw。[antigloss注:Dev-C++ 使用的编译器就是gcc & g++]
4. 不要用 " "代替 <> 来包含系统头文件,虽然有些编译器允许你这样做,但它不符合C/C++标准。
错误的示例:#include "stdio.h ",#include "iostream "。[antigloss注: <> 用于包含标准头文件和系统头文件, " " 用于包含自定义头文件。标准似乎没有明确规定不准用 " " 包含标准头文件和系统头文件。使用 " " 包含标准头文件或者系统头文件只能说是一种不良风格。]
5. 不要将main函数的返回类型定义为void,虽然有些编译器允许你这样做,但它不符合C/C++标准。不要将函数的int返回类型省略不写,在C++中要求编译器至少给一个警告。错误的示例:void main() {},main() {} [antigloss注:C99和C++98都要求编译器对省略int至少发出一个警告]
6. 不要把VC++中的 #include "stdafx.h " 贴出来,它是预编译头文件。如同上菜时不要把厨师也放到托盘中。
7. [C++]不要#include <iostream.h> ,不要#include <string.h> ,因为它们已经被C++标准明确的废弃了,请改为 #include <iostream> 和 #include <cstring> 。规则就是:
a. 如果这个头文件是旧C++特有的,那么去掉.h后缀,并放入std名字空间,
比如 iostream.h 变为 iostream。
b. 如果这个头文件是C也有的,那么去掉.h后缀,增加一个c前缀,比如 string.h
变为 cstring;stdio.h 变为 cstdio, 等等。
BTW:不要把string、cstring、string.h三个头文件搞混淆
BTW:windows.h不是C/C++的标准文件,因此它的命名C/C++不管。
8. 不要再写 char* p = "XXX " 这种语句,要写成 const char* p = "XXX ",编译器之所以让前者通过编译是为了兼容以前的大量的旧代码。
BTW:const TYPE* p 和 TYPE const* p 是一样的,风格不同而已。
BTW:C语言中也有const关键字。
9. 不要在同一条语句中包含一个变量的多个++/--,因为它们的解析在C/C++标准中没有规定,完全取决于编译器的个人行为。
10. C/C++ 是平台无关性语言,因此系统相关的 process/GUI 等不在标准 C/C++ 库中。比如 graphics.h 和 windows.h 等是由某个编译器提供的,而不是由C/C++ 提供的。
11. C/C++只是语言,而且是平台无关性语言。论坛上有部分人甚至认为C就是dos,C++就是windows,那么请问linux是什么?
12.[C++]面向对象曾经是设计C with class(C++的前身)的主要目的,但C++不是,C++是一个多典范语言。主要支持过程调用、基于对象、面向对象、泛式编程这四种编程典范。当然还支持functional, generative,metaprogramming等典范。
13. 语法学家不是文学家,所以当你学会了一门计算机语言时,你还需要学习数据机构和算法,还需要掌握工具和平台API的用法。
14. C/C++ 是通用语言,因此语法很复杂,你应当裁减成适合你自己的语法集合,比如裁减成 better C 和 ADT。
15. C/C++是通用语言,因此只含通用的库,你应该丰富自己需要的库,比如汽车工业协会有自己的C/C++函数/类/模板库。
❹ 请问C,C语言,C++,VC++,C#都有什么区别和联系
C 一种编程语言,面向过程的 ,C就是C语言,无语。。
C++ 一种编程语言,面向对象的语言,由C发展而来
VC++,是指微软的Visual C++,一个C++开发的环境
C#一种编程语言。基于微软的.net框架.
❺ c++和c语言有关系吗
你好!希望我的回答能给你一些启发。
C语言是结构化和模块化的面向过程的语言,C++语言是面向对象的程序设计语言。C++语言是C语言的超集,也就是说学会了C++,你其实已经把C语言学会了。至于说有什么区别,应该说是编程思想的区别吧,C是基于过程的,强调的是程序的功能,以函数(功能)为中心。C++是面向对象的,强调程序的分层、分类,以抽象为基础,进行对象的定义与展示,即程序设计。具体说来话长。建议你学习C++的时候,学会用面向对象的方式思考和编程。现在在开发大项目的时候,都是应用面向对象的分析和设计的技术。
C和C++的区别有什么
今天在网易上看到有人问C和C++的区别有什么,在这里简略说点.
其他的东西都不需要多说,就象类,继承,引用等,大家都知道.
这里讲的是调用编译的区别.大家看WIN32 SDK的头文件,总是可以看到
ifdef __cplusplus
extern "C"
endif
ifdef __cplusplus
endif
这个就是直接能够体现实际编程时区别的地方. 在WIN系列下.所有的WIN32 SDK提供的LIB都是以C的形式存在的.当然,C和C++同样都支持C,STDCALL,FASTCALL调用.为什么系统提供C编译器编译的LIB而不是C++编译的LIB呢?这里其实就是C和C++编译器不同的地方.
所有的函数名称只有在汇编编译器下才最清楚.因为经汇编编译器编译的函数不经过任何修饰.
C 的编译器编译出来的函数名称如果在汇编编译器看来一个C调用将在函数名前家下划线('_').而一个STDCALL的函数将是_FUNC@NUMBER的形式.如FUNC(void)经过编译器后成为_FUNC@0.一个FASTCALL调用的函数被编译成@FUNC@0.顺便提一下.在WIN32的编译器里不再需要PASCALL调用.VC6已经取消了对PASCALL的支持.
光看C的编译还不够,看一下C++编译器是怎么干的.在缺省情况下.一个C++的函数经过C++编译器后编译出的函数名包括函数名,所属的类,参数类型,调用约定,返回类型.而且更要命的是这么多的信息,只有函数名和类名在编译后还依稀可见.其他就是一长串的ABCD字母,根本就是无法辨认其意义的.我们在VC手册里可以看到
一个例子:
void __stdcall b::c(float); -----------> ?c@b@@QAGXM@Z
一个函数被编译得连名字也不知道怎么样了.这么一来.如果SDK提供的是C++编译器提供了LIB.那么可以说就无法编译任何一个完整的WIN程序.更加不用说什么混合语言编程.
现在,VC编译器提供了个extern语句.当出现extern 'C'语句,括号里的函数将以C方式经过编译器.从而使提供库程序方便那么点.
C语言与C++的区别有很多:
1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。
2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。
3,特别是C++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中C++中的。C语言标准中不包括图形处理。
4,C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。
4,C语言可以写很多方面的程序,但是C++可以写得更多更好,C++可以写基于DOSr程序,写DLL,写控件,写系统。
5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。
6,C++中的IDE很智能,和VB一样,有的功能可能比VB还强。
7,C++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。
8,C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。
9,调试功能强大,并且方法多样。
❻ c++与C语言的关系
如果你是刚开始学习一门语言,相信下面几条对你会有帮助!
1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++98,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个 "不再 ")有C++语法是C语法的超集的说法。
2. C++/CLI 和 C# 是微软的,它们与C和C++没有任何关系,虽然部分语法相似。但哪两种语言不相似呢?都是abc这26个字母。
3. 不要使用TC/TC++/BC/CB等古老的编译器来学习C/C++,因为它们太古老了,不支持新的C/C++标准。不要使用CBX/VC++6.0/VC2005等对C/C++标准支持不好的编译器,虽然这些编译器适合工作,但不适合学习,因为它们中的语法陷阱很多。记住唯一适合学习的编译器是gcc/mingw。[antigloss注:Dev-C++ 使用的编译器就是gcc & g++]
4. 不要用 " "代替 > 来包含系统头文件,虽然有些编译器允许你这样做,但它不符合C/C++标准。
错误的示例:#include "stdio.h ",#include "iostream "。[antigloss注: > 用于包含标准头文件和系统头文件, " " 用于包含自定义头文件。标准似乎没有明确规定不准用 " " 包含标准头文件和系统头文件。使用 " " 包含标准头文件或者系统头文件只能说是一种不良风格。]
5. 不要将main函数的返回类型定义为void,虽然有些编译器允许你这样做,但它不符合C/C++标准。不要将函数的int返回类型省略不写,在C++中要求编译器至少给一个警告。错误的示例:void main() {},main() {} [antigloss注:C99和C++98都要求编译器对省略int至少发出一个警告]
6. 不要把VC++中的 #include "stdafx.h " 贴出来,它是预编译头文件。如同上菜时不要把厨师也放到托盘中。
7. [C++]不要#include ,不要#include ,因为它们已经被C++标准明确的废弃了,请改为 #include 和 #include 。规则就是:
a. 如果这个头文件是旧C++特有的,那么去掉.h后缀,并放入std名字空间,
比如 iostream.h 变为 iostream。
b. 如果这个头文件是C也有的,那么去掉.h后缀,增加一个c前缀,比如 string.h
变为 cstring;stdio.h 变为 cstdio, 等等。
BTW:不要把string、cstring、string.h三个头文件搞混淆
BTW:windows.h不是C/C++的标准文件,因此它的命名C/C++不管。
8. 不要再写 char* p = "XXX " 这种语句,要写成 const char* p = "XXX ",编译器之所以让前者通过编译是为了兼容以前的大量的旧代码。
BTW:const TYPE* p 和 TYPE const* p 是一样的,风格不同而已。
BTW:C语言中也有const关键字。
9. 不要在同一条语句中包含一个变量的多个++/--,因为它们的解析在C/C++标准中没有规定,完全取决于编译器的个人行为。
10. C/C++ 是平台无关性语言,因此系统相关的 process/GUI 等不在标准 C/C++ 库中。比如 graphics.h 和 windows.h 等是由某个编译器提供的,而不是由C/C++ 提供的。
11. C/C++只是语言,而且是平台无关性语言。论坛上有部分人甚至认为C就是dos,C++就是windows,那么请问linux是什么?
12.[C++]面向对象曾经是设计C with class(C++的前身)的主要目的,但C++不是,C++是一个多典范语言。主要支持过程调用、基于对象、面向对象、泛式编程这四种编程典范。当然还支持functional, generative,metaprogramming等典范。
13. 语法学家不是文学家,所以当你学会了一门计算机语言时,你还需要学习数据机构和算法,还需要掌握工具和平台API的用法。
14. C/C++ 是通用语言,因此语法很复杂,你应当裁减成适合你自己的语法集合,比如裁减成 better C 和 ADT。
15. C/C++是通用语言,因此只含通用的库,你应该丰富自己需要的库,比如汽车工业协会有自己的C/C++函数/类/模板库。
❼ c++与c语言有什么关系
C++则一般看作是对C语言的扩展。因为C语言没有面向对象的语法结构,而当时业界又迫切需要面向对象的编程特性,所以贝尔实验室的开发者就为C添加了面向对象的结构。现在C++已经不只是C的扩展了,它已经完全可以被看作一种新的编程语言。虽然C的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。
简单的说
C语言是C++的基础
❽ C语言与C语言库函数是什么关系
1、C语言与C语言库函数的关系就类似于汉字与经典着作的关系。
C语言是一种计算机编程语言,C语言函数库是由C语言编写出来的文献。方便后来者们更加简单快捷的使用C语言。
2、C语言是一种程序设计的入门语言。由于C语言的语句中没有提供直接计算sin或cos函数的语句,会造成编写程序困难;但是函数库提供了sin和cos函数,可以拿来直接调用。显示一段文字,我们在C语言中找不到显示语句,只能使用库函数printf。
C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要,编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。在编写C语言程序时,使用库函数,既可以提高程序的运行效率,又可以提高编程的质量。
❾ Linux C编程 和C语言的关系 哪个是低一截的
linux
c就是在linux系统下的c语言,一般用vi、gedit、codeblocks编写,windows下也可以进行c编程,一般用tc、vc、dev-c。所以说c语言只是一门开发语言,linux
c编程是在linux下的c编程,不可以说谁低级。另外linux和windows下的c的库函数有一一些差别,不过语法还是一样的。
❿ C和C语言有什么关系
我们说编程工具用的是 C ,一般指 C语言、C# 及 类似 C语言的工具; 而C语言,本身可以作为一个 语言体系,也可以是一种编程工具。 但是我说我编程工具用的是 C语言,就可以否定C# 但是我说我用的是C,有可能是 C#.Net 也有可能是 C语言。 追问: C++C和C语言有什么关系 ++没打出来,不好意思啊 回答: C++这个词在中国大陆的 程序员 圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的 计算机编程语言 。C++是一种静态 数据类型 检查的,支持多重编程范式的 通用程序 设计语言。它支持过程化 程序设计 、数据抽象、 面向对象程序设计 、制 作图 标等等 泛型 程序设计等多种 程序设计风格 。 C语言之所以要 起名 为“C”,是因为它是主要参考那个时候的一门叫B的语言,它的设计者认为C语言是B语言的进步,所以就起名为C语言;但是B语言并不是因为之前还有个A语言,而是B语言的作者为了纪念他的妻子,他的妻子名字的第一个字母是B; 当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增加class 关键字 和类,那个时候有很多版本的C都希望在C语言中增加类的概念;后来C标准委员会决定为这个版本的C起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的++ 运算符 来体现它是C语言的进步,故而叫C++,成立了C++标准委员会。 追问: 也就是说C++是C语言发展到顶峰的高级产物?那么是不是要先从C语言开始学习,然后才能学好C++? 回答: 如果你想学习C++,就直接学吧。 C语言跟C++的语法和 关键字 不太一样,如果你已经熟练了C语言的话,再学C++可能还需要一段适应过程。 另外,现在我们普遍用的是 VC++6.0,已经是 面向对象 的 开发工具 了; 而C语言,则是 面向过程 的,跟VC++不一样的。