目录
90 关系: ALGOL 68,ANSI C,Awk,垃圾回收 (計算機科學),单片机,可移植C編譯器,变量 (程序设计),块 (C语言扩展),堆,头文件,字 (计算机),字符,巨集,常数,丹尼斯·里奇,布萊恩·柯林漢,序列化,应用软件,代码段,微软,信号 (Unix),國際標準化組織,函数,全局变量,BCPL,B語言,Borland,Borland Turbo C,C Shell,C++,C11,C♯,C程序设计语言 (书),C语言,Clang,CPL (程式語言),移植 (軟體),程序设计,系统软件,編譯器,结构化编程,编程语言,缓存溢出,美國國家標準協會,無窮迴圈,D語言,静态变量,预处理器,馬丁·理察德,資料類型,... 扩展索引 (40 更多) »
- 1972年建立的程式語言
- C語言
- C語言家族
- ISO标准化编程语言
- 系統程式語言
- 过程式编程语言
- 静态类型编程语言
ALGOL 68
ALGOL 68(源自ALGOrithmic Language 1968的縮寫),一種指令式程式語言,為ALGOL家族的成員,被認為是ALGOL 60的後繼者。它設計的目標,是提供更廣泛的應用,以及更嚴格的語法定義。.
查看 C语言和ALGOL 68
ANSI C
ANSI C是美国国家标准协会(ANSI)对C语言发布的标准。使用C的软件开发者被鼓励遵循ANSI C文档的要求,因为它鼓励使用跨平台的代码。.
查看 C语言和ANSI C
Awk
AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·溫伯格和布萊恩·柯林漢姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上AWK的确拥有自己的语言:AWK程序设计语言,三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。gawk是AWK的GNU版本。 最简单地说,AWK是一种用于处理文本的编程语言工具。AWK在很多方面类似于Unix shell编程语言,尽管AWK具有完全属于其本身的语法。它的设计思想来源于SNOBOL4、sed、Marc Rochkind设计的有效性语言、语言工具yacc和lex,当然还从C语言中获取了一些优秀的思想。在最初创造AWK时,其目的是用于文本处理,并且这种语言的基础是,只要在输入数据中有模式匹配,就执行一系列指令。该实用工具扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行。.
查看 C语言和Awk
垃圾回收 (計算機科學)
垃圾回收(Garbage Collection),在計算機科學中,縮寫為GC是一種自動的記憶體管理機制。當一個電腦上的動態記憶體不再需要時,就應該予以釋放,以讓出記憶體,這種記憶體資源管理,稱為垃圾回收。垃圾回收器可以讓程式員減輕許多負擔,也減少程式員犯錯的機會。垃圾回收最早起源于LISP语言。目前許多語言如Smalltalk、Java、C#和D语言都支援垃圾回收器。.
单片机
--,全称--(single-chip microcomputer),又稱--(microcontroller),是把中央处理器、存储器、定时/计数器(timer/counter)、各種输入输出接口等都集成在一块-zh-hans:集成电路; zh-hant:積體電路;-芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的--;由於單晶片微電腦常用於當控制器故又名single chip microcontroller。“单晶片”是台湾对单片机的称呼;中国大陆主要采用“--”的称呼,英文缩写为MCU。.
查看 C语言和单片机
可移植C編譯器
可移植C編譯器(Portable C Compiler),也被稱為pcc,或pccm(portable C compiler machine),一種早期的C語言編譯器,由於1970年代中期,在貝爾實驗室寫作。這個編譯器被使用在Version 7 Unix上,跟著它一同釋出。一直到1994年4.4BSD發表時,它都是BSD UNIX系統上的預設C語言編譯器,一直到被gcc取代為止。在1980年代,它是非常具有影響力的C語言編譯器典範,主要的C語言編譯器都是在它的基礎上繼續開發而成。2007年,Anders Magnusson與 Peter A Jonsson重新開發了pcc,讓它也可以適用於C99標準。.
查看 C语言和可移植C編譯器
变量 (程序设计)
在程序設計中,變數(Variable,scalar)是指一個包含部分已知或未知數值或資訊(即一個值)之儲存位址,以及相對應之符號名稱(識別字)。通常使用變數名稱參照儲存值;將名稱和內容分開能讓被使用的名稱獨立於所表示的精確訊息之外。電腦原始碼中的識別字能在執行期間綁紮一個值,且該變數的值可能在程式執行期間改變。 程序設計中的變數不一定能直接對應到數學中所謂的變數之概念。在程序設計中,變數的值不一定要為方程或數學公式之一部分。程序設計中的變數可使用在一段可重復的程序:在一處賦值,然後使用於另一處,接著在一次賦值,且以相同方式再使用一次(見迭代)。程序設計中的變數通常會給定一個較長的名稱,以描述其用途;數學中的變數通常較為簡潔,只給定一、兩個字母,以方便抄寫及操作。 一個變數的儲存位址可以被不同的識別字所參照,這種情況稱之為別名。使用其中一個識別字為變數賦值,將會改變透過另一個識別字存取的值。 編譯器必須將代表變數的名稱替代成該數據所在的實際位址。變數的名稱、類型及位址通常會維持固定,但該位址所儲存之數據於程式執行期間則可能會改變。.
块 (C语言扩展)
块(blocks)是由LLVM提出的类似于lambda表达式的非标准C语言扩展,亦可以应用于Objective-C与C++中。它的语法类似于这些函数中的闭包,即由大括号包括的语句块。 苹果设计块的一个目的是使设计基于Grand Central Dispatch线程结构的程序更容易, retrieved on June 9, 2009.
堆
在计算机科学中,堆可以指:.
查看 C语言和堆
头文件
在程序设计中,特别是在C语言和C++中,头文件或包含文件是一个文件,通常是源代码的形式,由编译器在处理另一个源文件的时候自动包含进来。一般来说,程序员通过编译器指令将头文件包含进其他源文件的开始(或头部)。 一个头文件一般包含类、子程序、变量和其他标识符的前置声明。需要在一个以上源文件中被声明的标识符可以被放在一个头文件中,并在需要的地方包含这个头文件。 在C语言和C++中,标准库函数习惯上在头文件中声明,参见C标准函式库和C++标准函式库。.
查看 C语言和头文件
字 (计算机)
在電腦领域,对于某种特定的计算机设计而言,字(word)是用于表示其自然的数据单位的术语,而在台灣這個術語稱作「字組」,以與字的原意區別。在这个特定電腦中,字是其用来一次性处理事务的一个固定长度的位(bit)组。一个字的位数(即字长)是電腦系统结构中的一个重要特性。 字长在计算机结构和操作的多个方面均有体现。電腦中大多数寄存器的大小是一个字长。電腦处理的典型数值也可能是以字长为单位。CPU和内存之间的数据传送单位也通常是一个字长。还有而内存中用于指明一个存储位置的地址也经常是以字长为单位的。 现代電腦的字长通常为16、32、64位。其他曾经使用过的字长有:8、9、12、18、24、36、39、40、48、60位;slab是早期的另一个字长实例。某些最早期的電腦是十进制的而不是二进制的,通常拥有10位或者12位的十进制数字作为字长,还有一些早期的電腦根本就没有固定字长。 有时候字长被定义为某个特定值是为了与早期的電腦保持兼容。现在个人電腦中最通用的微处理器(例如:Intel的Pentium系列和AMD的Athlon系列)就是一个例子。它们中的IA-32构架是早期的具有16位字长的Intel 8086构架的扩展。而IA-32处理器仍然支持8086(x86)程序,所以在IA-32中,“字”的含义仍然为16位,尽管事实上它运行起来(特别是当默认操作数为32位时)更像一台32位電腦。类似地,在更新型的x86-64构架中,“字”仍然是16位的,虽然64位操作数更为常见。.
查看 C语言和字 (计算机)
字符
在電腦和電信領域中,字符(Character)是一個資訊單位。對使用字母系統或音節文字等自然語言,它大約對應為一個音位、類音位的單位或符號。簡單來講就是一個漢字、假名、韓文字……,或是一個英文、其他西方語言的字母。 字符的例子有:字母、數字系統或標點符號。另外有所謂控制字符的概念,它是指:並不對應到自然語言中的某個特定符號,而是對應到語言中一些用來處理文句的概念(類似排版)。例子為列印機或其它顯示設備的命令,如Enter或Tab。.
查看 C语言和字符
巨集
,是一種批--量處理的稱謂。 计算机科学裡的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。 宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力。 计算机语言如C语言或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。 Lisp类语言如Common Lisp和Scheme有更精巧的宏系统:宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。一个C宏可以定义一段语法的替换,然而一个Lisp的宏却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。例如,一种Lisp方言有cond而没有if,就可以使用宏由前者定义后者。Lisp语法的去部主要扩展,比如面向对象的CLOS系统,可以由宏来定义。 MacroML有型别语法宏,一种有效的理解方式是把这种语法宏看作是多阶段计算。.
查看 C语言和巨集
常数
常数又稱定數,是指一个数值固定不变的常量,例如圆周率\pi\,、自然对数的底e,与之相反的是變數。 在物理學上,很多經測量得出的數值都被稱為常數。例如萬有引力常數和地表重力加速度等。但有研究表明,部分這類常数并不是恒定不变的,因此就被稱作“不定常数”(inconstant constant)和“不恒定的常数”(not-so-constant constant)。.
查看 C语言和常数
丹尼斯·里奇
丹尼斯·麦卡利斯泰尔·里奇(Dennis MacAlistair Ritchie,),美國計算機科學家。駭客圈子通常稱他為「dmr」。他是C語言的創造者、Unix作業系統的關鍵開發者 ,對電腦領域產生了深遠影響,並與肯·湯普遜同為1983年圖靈獎得主。.
查看 C语言和丹尼斯·里奇
布萊恩·柯林漢
布萊恩·威爾森·柯林漢(Brian Wilson Kernighan,),生於加拿大多倫多,加拿大計算機科學家,曾服務於貝爾實驗室,為普林斯顿大学教授。他曾參與Unix的研發,也是AMPL與AWK的共同創造者之一。 與丹尼斯·里奇共同寫作了C語言的第一本著作《C程序设计语言》之後,他的名字開始為人所熟知。他也創作了許多Unix上的程式,包括在Version 7 Unix上的ditroff與cron。.
查看 C语言和布萊恩·柯林漢
序列化
序列化(serialization)在計算機科學的資料處理中,是指將資料結構或物件狀態轉換成可取用格式(例如存成檔案,存於緩衝,或經由網絡中傳送),以留待後續在相同或另一台計算機環境中,能恢復原先狀態的過程。依照序列化格式重新獲取位元組的結果時,可以利用它來產生與原始物件相同語義的副本。對於許多物件,像是使用大量參照的複雜物件,這種序列化重建的過程並不容易。物件導向中的物件序列化,並不概括之前原始物件所關聯的函式。這種過程也稱為物件編組(marshalling)。從一系列位元組提取資料結構的反向操作,是反序列化(也稱為解編組, deserialization, unmarshalling)。 序列化在计算机科学中通常有以下定義.
查看 C语言和序列化
应用软件
應用程式是電腦軟件的主要分類之一,是指為針對使用者的某種特殊應用目的所撰寫的軟件,例如,文本处理器,表格,会计应用,浏览器,媒体播放器,航空飞行模拟器,命令行游戏,图像编辑器等。与之相对应的是主要功能为驱动计算机运行的系统软件。 应用软件可能与计算机及其系统软件相捆绑,也可以被分开发布,并且可能以私有、开源或通用项目的形式编写。为移动平台所编写的应用被称为移动应用。.
查看 C语言和应用软件
代码段
在采用段式内存管理的架构中,代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许程序自修改(self-modifying code)。 在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。 操作系统在装载一个程序时会进行进程地址空间的分段,而代码段通常处于最底部,即最低地址部分,而堆和栈在高处,所以在允许代码段可写的架构上,当堆或栈内存溢出时,代码段中的数据就会开始被覆盖。.
查看 C语言和代码段
微软
微軟(Microsoft;)是美國一家跨國電腦科技公司,以研發、製造、授權和提供廣泛的電腦軟件服務為主。總部位於美國华盛顿州的雷德蒙德,最為著名和暢銷的產品為Microsoft Windows操作系统和Microsoft Office辦公室軟件,以及Xbox的遊戲業務。微軟是美国《财富》杂志2015年评选的的排行榜中的第95名。 公司於1975年由比爾‧蓋茲和保羅·艾倫創立。初期主要為Altair 8800發展和銷售BASIC直譯器,在1980年代中期憑藉MS-DOS在家用電腦作業系統市場上取得長足進步,後來出現的Windows使得微軟逐漸統治了家用桌面電腦作業系統市場。同時微軟也開始擴張業務,進軍其他行業和市場,建立了MSN網站,在計算機硬件市場上,微軟商標及Xbox遊戲機、Zune和MSN TV家庭娛樂設備也在不同的年份出現在市場上。微軟於1986年首次公開募股,此後不斷走高的股價為微軟締造了四位億萬富翁和12,000位百萬富翁。 伴隨公司的強大,微軟也越來越受到批評和指責,並且數十年來從未間斷。拒絕交易和捆綁銷售等做法招致垄断和不正當競爭的訴訟。美国司法部和歐盟委員會根據反托拉斯法均對微軟做出過不利裁定美国司法部网页。.
查看 C语言和微软
信号 (Unix)
#重定向 Unix信号.
國際標準化組織
國際標準化組織(International Organization for Standardization;Organisation internationale de normalisation;Международная организация по стандартизации;简称:ISO)成立於1947年2月23日,--定全世界工商業國際標準的國際標準建立機構。 ISO總部設於瑞士日內瓦,成員包括162個會員國。該組織定義為非政府組織,官方語言是英語、法語和俄語。參加者包括各會員國的國家標準機構和主要公司。 ISO與負責電子設備標準的國際電工委員會密切合作。 ISO的國際標準以數字表示,例如:「ISO 11180:1993」的「11180」是標準號碼,而「1993」是出版年份。.
查看 C语言和國際標準化組織
函数
函數在數學中為兩集合間的一種對應關係:輸入值集合中的每項元素皆能對應唯一一項輸出值集合中的元素。例如實數x對應到其平方x2的關係就是一個函數,若以3作為此函數的輸入值,所得的輸出值便是9。 為方便起見,一般做法是以符號f,g,h等等來指代一個函數。若函數f以x作為輸入值,則其輸出值一般寫作f(x),讀作f of x。上述的平方函數關係寫成數學式記為f(x).
查看 C语言和函数
全局变量
在程序设计中,全局变量是在所有作用域都可访问的变量,与之对应的是局部变量。 通常,使用不必要的全局变量被认为是坏习惯,这正是由于全局变量的非局部性:全局变量可能被从任何地方修改(除非位于保护内存中),也可能被任何地方所依赖。于是全局变量便拥有了建立相互依存关系的无限可能,而互相依存关系的建立会使得复杂度增加,参见远隔作用(Action at distance)。然而,在少数情况下是适合使用全局变量的。例如,可以通过全局变量的使用来避免常用变量在一系列函数间的频繁传递。 C++语言中全局变量的例子:.
查看 C语言和全局变量
BCPL
BCPL(Basic Combined Programming Language),是一種電腦程式設計語言,源自更早的CPL語言,1966年由劍橋大學的馬丁·理察德(Martin Richards)所發展出來的。 Richards試著移除了CPL中最複雜的組成,第一支BCPL compiler在IBM 7094電腦中完成。 身為早期程式語言的BCPL,如今已不再廣泛使用,但它的影響卻是深遠的,今日流行的C語言即是參考BCPL所設計。BCPL是第一支使用括弧語言,括弧特徵在C語言中隨處可見,例如.
查看 C语言和BCPL
B語言
B語言是一种通用的程序设计语言。自從被C語言取代之後,它幾乎已遭棄置。B語言大約是於1969年時由美國貝爾實驗室的電腦科學家──肯·湯普森在丹尼斯·利奇的支持下設計出來的。肯·湯普森最初想在UNIX上開發一個Fortran編譯器,但後來引進了BCPL的風格,形成一個新的語言。 後來,丹尼斯·利奇以B語言為基礎開發出C語言,至此C語言漸漸發展成為目前世界上最常用的程式語言之一。.
查看 C语言和B語言
Borland
Borland软件公司(有译宝蓝公司或寶蘭公司,Borland Software Corporation,NASDAQ:),是一家总部位于美国加利福尼亚州的软件公司,以提供软件开发生命周期所需的各种工具,以及已经变成今天的Delphi的Turbo Pascal而闻名于世。2009年5月6日,Micro Focus宣布以7500万美元收购Borland。.
查看 C语言和Borland
Borland Turbo C
Turbo C是一套C語言的整合開發環境與編譯器軟體,由Borland公司開發,於1987年開始發售。1990年五月,它被Turbo C++所取代。.
C Shell
C shell(csh)是Unix shell的一种,由比尔·乔伊在BSD系统上开发。C shell脱胎于Unix第六版的/bin/sh,也是Bourne shell的前身。这种shell的语法类似于C语言,与Bourne shell相比,C shell有不少特别的功能,比如aliases(别名)、command history(命令的历史)。目前C shell已不再被广泛使用,后继者包括Tenex C shell(tcsh)、Korn shell(ksh)、GNU Bourne-Again shell(bash)。 C shell在交互模式中引入许多开创性功能的同时,C shell的脚本执行能力受到了不少批评。无论如何,由于在所有的单一UNIX规范相容系统中都放了标准的Bourne shell,所以大部分人都建议使用sh来进行脚本编写。.
查看 C语言和C Shell
C++
C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.
查看 C语言和C++
C11
C11(也被称为C1X)指ISO标准ISO/IEC 9899:2011,是当前最新的C语言标准。在它之前的C语言标准为C99。这次修订新增了被主流C语言编译器(如GCC,Clang,Visual C++等)增加的内容,和引入了内存模型以更好的执行多线程。之前C99的一些被推迟的计划在C11中增加了,但是对C99仍保留向后兼容。 GCC从4.6版本开始,已经可以支持一些C11的特性,Clang则是从3.1版本开始。但多執行緒相關的函式庫直到2018年還未出現穩定的實作,等於沒有編譯器可以完整的支援C11。.
查看 C语言和C11
C♯
C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言,希望借助这种语言来取代Java。C#已经成为Ecma国际和国际标准组织的标准规范。.
查看 C语言和C♯
C程序设计语言 (书)
《C程序设计语言》(The C Programming Language),又譯為C語言程式設計,是介紹C語言的计算机科学著作,由计算机科学家布萊恩·柯林漢(Brian Kernighan)和C语言之父丹尼斯·里奇(Dennis Ritchie)合著,是第一部介紹C語言編程方法的書籍。它以作者名字的縮寫被簡稱為K&R;或是因封面颜色,被稱為白皮书。 它在C语言的发展和普及过程中起到了非常重要的作用,被視為是C語言的業界標準規範,而且至今仍然广泛使用。它被公认为计算机技术著作的典范,以清晰简洁的文字讲述而著称。书中用"hello world"为实例开始讲解程序设计,成为程序设计语言图书的传统。 该书第1版出版于1978年,第2版(也是最新版本)出版于1988年,被译为世界上包括中文在内的20多种文字。.
C语言
C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.
查看 C语言和C语言
Clang
Clang(類似英文單字clang) 是一個C、C++、Objective-C和Objective-C++程式語言的編譯器前端。它採用了底層虛擬機(LLVM)作為其後端,而且由LLVM2.6開始,一起釋出新版本。它的目標是提供一個GNU編譯器套裝(GCC)的替代品,支援了GNU編譯器大多數的編譯設定以及非官方語言的擴充功能。作者是克里斯·拉特納(Chris Lattner),在蘋果公司的贊助支持下進行開發,而原始碼授權是使用類BSD的伊利诺伊大学厄巴纳-香槟分校開源碼許可。 Clang專案包括Clang前端和Clang靜態分析器等。.
查看 C语言和Clang
CPL (程式語言)
CPL(Combined Programming Language,原名Cambridge Programming Language),一種計算機程式語言。源自於ALGOL 60,在1963年,由英国的剑桥大学和伦敦大学首先開發出來。CPL语言在ALGOL 60的基础上更接近硬件一些,但规模比较大,难以实现。BCPL是它的後繼語言。.
移植 (軟體)
在軟體工程中,移植(Porting)是一種軟體發展程序,將某個可執行的程式,由它原先的環境中,遷移到另一個環境,讓它可以重新運作。改變的環境可能是硬體或軟體,包括處理器架構、作業系統、軟體庫等。 是當你進行軟體移植時,需要重新改寫的原始碼越少,需要做的工時越少,這個軟體的可移植性就越高。.
查看 C语言和移植 (軟體)
程序设计
电脑程序设计(Computer programming),或稱程式設計(programming),是给出解决特定问题程序的过程,軟體開發過程中的重要步驟。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应包括分析、设计、编碼、测试、除错等不同阶段。 在计算机技术发展的早期,軟體開發主要就是程序设计。但随着技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如操作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的系統環境的一部分。这种情况下軟體開發的内容越来越丰富,不再只是纯粹的程序设计,还包括数据库设计、用户界面设计、通信协议设计和复杂的系统配置过程。 专业的程序设计人员被称为程序员。某种意思上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿愛達·勒芙蕾絲曾设计了巴贝奇分析机上計算伯努利數的一个程序。她甚至还建立了循环和子程序的概念。由于她在程序设计上的突破性創新,愛達·勒芙蕾絲被称为世界上第一位程序员。 任何设计工作都是在各种条件限制和相互矛盾的需求之间寻求一种平衡。這種觀點反映在程式設計上,就是硬體儲存空間與程式執行時間的限制。 空間方面,在计算机技术发展的早期,由于机器资源比较昂贵,如何縮小儲存空間往往是设计关心的首要重點;而随着硬件技术的飞速发展,電腦上資料儲存媒體的價格降低,空間不再是考慮的第一要點,一些較耗時的運算也漸漸發展出以空間換取時間的模式。 時間方面,在早期,如何加強程式效率、縮短程式執行時間是程式設計師的共同目標;而在硬體效能進步、效率差距縮小,软件规模與複雜度卻日益增加的現在,程序的结构、可维护性、重複使用性、彈性等因素更顯得重要。在多人合作的程式設計專案裡,程式設計師們會加上各種註解以協助其他參與者理解程式碼,,但卻因能達到較好的溝通並提高程式碼的可維護性,而成為目前的主流。 然而,隨著智慧型手機等攜帶裝置的興起,執行時間的縮短與儲存空間的有效運用再次成為焦點,形成與主機伺服器類型應用程式不同的重點考慮方向。.
查看 C语言和程序设计
系统软件
系統軟體(System software),主要指用來運行或控制硬體所開發的計算機軟體,如作業系統、直譯器、編譯器、資料庫管理系統、公用程式等面向开发者的软件。 系統軟體一詞常與系統程式 (system program) 混用,狹義而言,系統程式指的是作業系統設計,以及與作業系統相關的程式,例如行程排班、記憶體管理、行程通訊、平行程式、驅動程式等等;廣義來說,系統程式泛指與計算機系統相關的程式設計,例如嵌入式系統、組合語言程式設計、C 語言程式設計、Linux 核心程式設計等等;而系統軟體主要指的是輔佐系統程式能夠在電腦上運行或執行特定工作 (例如除錯、行程排班) 等等的工具程式。 常見的系統軟體包含:.
查看 C语言和系统软件
編譯器
编译器(compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。 它主要的目的是將便于人编写、阅读、维护的高级计算机语言所寫作的原始碼程式,翻译为计算机能解读、运行的低阶机器语言的程序,也就是執行檔。编译器将原始程序(source program)作为输入,翻译产生使用目标语言(target language)的等价程序。源代码一般为高阶语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。 一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 執行檔(executables), 最後打包好的檔案就可以給電腦去判讀執行了。.
查看 C语言和編譯器
结构化编程
結構化程式設計(Structured programming),一種編程典範。它採用子程序、、for迴圈以及while迴圈等結構,來取代傳統的 goto。希望藉此來改善计算机程序的明晰性、品質以及開發時間,並且避免寫出麵條式代碼。 結構化程式設計在1960年代開始發展,及朱塞佩·賈可皮尼(Giuseppe Jacopini)於1966年5月在《Communications of the ACM》期刊發表論文,說明任何一個有goto指令的程式,可以改為完全不使用goto指令的程式,後來艾兹赫尔·戴克斯特拉在1968年也提出著名的論文《GOTO陳述有害論》(Go To Statement Considered Harmful),,因此結構化程式設計開始盛行,此概念理論上可以由結構化程式理論所證明,而在實務上,當時也有像ALGOL一樣,有豐富控制結構的程式語言來實現結構化程式設計。.
查看 C语言和结构化编程
编程语言
编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.
查看 C语言和编程语言
缓存溢出
#重定向 缓冲区溢出.
查看 C语言和缓存溢出
美國國家標準協會
--(American National Standards Institute,ANSI)是负责制定美国国家标准的非营利组织。美国国家标准学会授权标准起草机构按照一系列规范编写标准草案。由此产生的候选文献通过ANSI审核批准后成为美国国家标准。 美国国家标准学会是国际标准化组织和国际电工委员会的成员。.
查看 C语言和美國國家標準協會
無窮迴圈
無窮迴圈(infinite loop)或稱為无限循环,是指程式的控制流程一直在重複執行某一段程式碼,無法結束的情形,其原因可能是因為程式中的迴圈沒有設結束迴圈條件,或是結束迴圈的條件不可能成立等。在合作式多工(cooperative multitasking)的作業系統中,無窮迴圈會使系統沒有反應,若是先占式(preemptive)多工的系統中,無窮迴圈會用掉所有可用的處理器時間,不過可以由使用戶結束程序。無窮迴圈是造成系統假死機的原因之一,其他的可能原因包括死鎖或是記憶體區段錯誤。 忙碌等待迴圈是在外界特定條件時(例如有按鍵輸入)才會離開的迴圈,有時忙碌等待迴圈也被稱為是無窮迴圈,但此情形和上述的不太一様。忙碌等待迴圈可以藉由外界事件而結束迴圈,但上述的無窮迴圈是無法結束的。.
查看 C语言和無窮迴圈
D語言
D語言是一种程式語言,具备多範型,例如物件導向、指令式。由沃尔特·布莱特和安德烈·亞歷山德雷斯庫所開發,起源自C++,深受C++的影響,然而其不是C++的变种,而是重新设计来自C++的部分特性,并受到其它程式語言觀念的影響,如Java、C#以及Eiffel。2007年1月2日釋出1.0穩定版本。版本2.0釋出於2007年1月17日。 Walter Bright本身是Symantec C++ 編譯器的作者;另一名作者Andrei Alexandrescu是Facebook的研究科学家,他与一个团队用D语言重写一些Facebook的重要操作。.
查看 C语言和D語言
静态变量
静态变量(Static Variable)在计算机编程领域指在程序执行前系统就为之(也即在运行时中不再改变分配情况)存储空间的一类变量。与之相对应的是在运行时只暂时存在的自动变量(即局部变量)与以动态分配方式获取存储空间的一些对象,其中自动变量的存储空间在调用栈上分配与释放。.
查看 C语言和静态变量
预处理器
在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和巨集展开,而另一些则有着完全成熟的编程语言的能力。 一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如:C语言)中有一个叫做预处理的翻译阶段。.
查看 C语言和预处理器
馬丁·理察德
丁·理察德(Martin Richards,),生於英國,計算機科學家,為BCPL程式語言的發明者,發展了TRIPOS作業系統。.
查看 C语言和馬丁·理察德
資料類型
在程式設計的型別系統中,数据类型(Data type)是用來約束数据的解釋。在程式語言中,常見的数据类型包括--(如:整數、浮點數或字元)、多元組、記錄單元、代數資料型別、抽象数据类型、參考型別、类以及函式型別。資料型別描述了數值的表示法、解釋和結構,並以演算法操作,或是物件在記憶體中的儲存區,或者其它儲存裝置。.
查看 C语言和資料類型
贝尔实验室
贝尔实验室(Bell Laboratories),最初是内从事包括电话交换机、电话电缆、半导体等电信相关技术的研究开发机构。地点位于美國新澤西州聯合縣的Murray Hill。.
查看 C语言和贝尔实验室
超级计算机
超级计算机(Supercomputer),指能够执行一般个人电脑无法处理的大资料量与高速运算的计算机,规格与性能比个人计算机强大许多。现有的超级计算机运算速度大都可以达到每秒一兆(万亿,非百万)次以上。「超级计算」(supercomputing)這名詞第一次出現,是在1929年《纽约世界报》关于IBM为哥伦比亚大学建造大型報表机(tabulator)的报导。 1960年代,超级计算机由麥可·徐(Michael Tsui)在Control Data Corporation裡设计出来并领先市场直到1970年代克雷创立自己的公司──克雷研究。凭着他的新设计,他控制了整个超级计算机市场,并占据颠峰位置长达五年(1985年-1990年)。到了1980年代,正值小型计算机市场萌芽阶段,大量小型对手加入竞争。在1990年代中期,很多对手受不了市场的冲击而消声匿迹。今天,超级计算机成了一种由像IBM及惠普等大型计算机公司所特意设计的计算机。虽然这些公司通过不断并购其他公司而增强了自己的经验,克雷研究依然是超级计算机领域的巨头之一。.
查看 C语言和超级计算机
跨平台
跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.
查看 C语言和跨平台
过程式编程
过程式程序设计(Procedural programming),又稱程序式編程、程序化編程,一種編程典範,有時會被視為是指令式編程的同義語。衍生自結構化編程(Structured programming),主要採取程序呼叫(procedure call)或函式呼叫(function call)的方式來進行流程控制。流程則由包涵一系列運算步驟的程序(Procedures),常式(routines),子程序(subroutines), 方法(methods),或函式(functions)來控制。在程式執行的任何一個時間點,都可以呼叫某個特定的程序。任何一個特定的程序,也能被任意一個程序或是它自己本身呼叫。 著名的例子有Linux內核,git,以及Apache HTTP Server等。 Category:編程典範.
查看 C语言和过程式编程
肯·汤普逊
肯尼斯·蓝·汤普逊(Kenneth Lane Thompson,)小名肯·汤普逊(Ken Thompson),美国计算机科学学者和工程师。駭客文化圈子通常称他为“ken”。在贝尔实验室工作期间,汤普逊设计和实现了Unix操作系统。他创造了B语言——C语言的前身,而且他是Plan 9操作系统的创造者和开发者之一。2006年,汤普逊进入Google公司工作,与他人共同设计了Go语言。他與丹尼斯·里奇同為1983年圖靈獎得主。 此外,肯·汤普逊还参与过正则表达式和UTF-8编码的设计,改进了文本编辑器,创造了编辑器。他曾制造过专门用于下国际象棋的电脑“”,并建立了。.
查看 C语言和肯·汤普逊
Fortran
福傳(Fortran),源自於「公式翻译」(Formula Translation)的縮寫,是一種程式語言。1957年由IBM開發出,是世界上第一个被正式采用並流传至今的高级编程語言。.
查看 C语言和Fortran
GCC
GNU编译器套裝(GNU Compiler Collection,縮寫為GCC),指一套编程語言编译器,以GPL及LGPL許可證所發行的自由軟體,也是GNU計畫的关键部分,也是GNU工具链的主要組成部份之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。1985年由理查德·马修·斯托曼開始發展,現在由自由軟體基金會負責維護工作。 原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC在发布后很快地得到擴展,變得可處理C++。之後也變得可處理Fortran、Pascal、Objective-C、Java、Ada,Go與其他語言。 許多操作系統,包括許多类Unix系統,如Linux及BSD家族都採用GCC作為标准编译器。蘋果電腦预装的Mac OS X操作系统也採用這個編譯器。 GCC原本用C開發,後來因為LLVM、Clang的崛起,它更快地將開發語言轉換為C++。許多C的愛好者在對C++一知半解的情況下主觀認定C++的性能一定會輸給C,但是Ian Lance Taylor給出了不同的意見,並表明C++不但性能不輸給C,而且能設計出更好,更容易維護的程式(、)。.
查看 C语言和GCC
GNU C
#重定向 GCC.
查看 C语言和GNU C
Hello World
Hello, World是指在電腦螢幕顯示「Hello, World!」(你好,世界!)字串的電腦程式。相關的程式通常都是每種電腦編程語言最基本、最簡單的程序,也會用作示範一個編程語言如何運作。同時它亦可以用來確認一個編程語言的變電器、程序開發環境及運行環境是否已經安裝妥當。因為寫法簡單可見,這也是很多初學者首次接觸程式語言時會撰寫的程序。.
IEEE 754
IEEE二進位浮點數算術標準(IEEE 754)是20世纪80年代以来最廣泛使用的浮點數運算標準,為許多CPU與浮點運算器所採用。這個標準定義了表示浮點數的格式(包括負零-0)與反常值(denormal number)),一些特殊數值(無窮(Inf)與非數值(NaN)),以及這些數值的「浮點數運算子」;它也指明了四種數值修約規則和五種例外狀況(包括例外發生的時機與處理方式)。 IEEE 754規定了四種表示浮點數值的方式:單精確度(32位元)、雙精確度(64位元)、延伸單精確度(43位元以上,很少使用)與延伸雙精確度(79位元以上,通常以80位元實做)。只有32位元模式有強制要求,其他都是選擇性的。大部分程式語言都有提供IEEE浮点数格式與算術,但有些將其列為非必需的。例如,IEEE 754問世之前就有的C語言,現在有包括IEEE算術,但不算作強制要求(C語言的float通常是指IEEE單精確度,而double是指雙精確度)。 該標準的全稱為IEEE二進位浮點數算術標準(ANSI/IEEE Std 754-1985),又稱IEC 60559:1989,微處理器系統的二進位浮點數算術(本來的編號是IEC 559:1989)。後來還有「與基數無關的浮點數」的「IEEE 854-1987標準」,有規定基數為2跟10的狀況。现在最新標準是「ISO/IEC/IEEE FDIS 60559:2010」。 在六、七十年代,各家计算机公司的各个型号的计算机,有着千差万别的浮点数表示,却没有一个业界通用的标准。这给数据交换、计算机协同工作造成了极大不便。IEEE的浮点数专业小组于七十年代末期开始酝酿浮点数的标准。在1980年,英特尔公司就推出了单片的8087浮点数协处理器,其浮点数表示法及定义的运算具有足够的合理性、先进性,被IEEE采用作为浮点数的标准,于1985年发布。而在此前,这一标准的内容已在八十年代初期被各计算机公司广泛采用,成了事实上的业界工业标准。加州大学伯克利分校的数值计算与计算机科学教授威廉·卡韩被誉为“浮点数之父”。.
查看 C语言和IEEE 754
Java
Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.
查看 C语言和Java
JavaScript
JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直譯語言。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 虽然JavaScript与Java这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。 在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的HTML5和CSS3语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如Node.js。.
Lint
在電腦科學中,lint是一種工具程式的名稱,它用來標記原始碼中,某些可疑的、不具結構性(可能造成bug)的段落。它是一種靜態程序分析工具,最早適用於C語言,在UNIX平台上開發出來。後來它成為通用術語,可用於描述在任何一種電腦程式語言中,用來標記原始碼中有疑義段落的工具。.
查看 C语言和Lint
Linux
Linux( )是一種自由和開放源碼的類UNIX作業系統。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。,在加上使用者空間的應用程式之後,成為Linux作業系統。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多數Linux系統還包括像提供GUI的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux發行版,而不是自己選擇每一樣組件或自行設置。 Linux嚴格來說是單指作業系統的内核,因作業系統中包含了許多用戶圖形介面和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,內核則改以Linux内核稱之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux,但Linux不屬於GNU計劃,這個名稱並沒有得到社群的一致認同。 Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级电脑运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是建立在Linux内核之上。 通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其衍生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。.
查看 C语言和Linux
Mac OS X
#重定向 MacOS.
查看 C语言和Mac OS X
Microsoft Visual C++
Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)是微軟公司的C++開發工具,具有集成开发环境,可提供編輯C語言,C++以及C++/CLI等编程語言。VC++整合了便利的除錯工具,特別是整合了微軟Windows视窗操作系统应用程序接口(Windows API)、三维動畫DirectX API,Microsoft.NET框架。目前最新的版本是Microsoft Visual C++ 2017。.
Microsoft Windows
Microsoft Windows(中文有时譯作微軟--,通常不做翻译)是微軟公司推出的一系列操作系统。它問世於1985年,起初是MS-DOS之下的桌面環境,其後續版本逐漸發展成為主要为個人電腦和服务器用户設計的操作系統,并最终获得了世界个人电脑操作系統的垄断地位。此操作系統可以在几种不同类型的平台上运行,如个人电脑(PC)、移动裝置、服务器(Server)和嵌入式系統等等,其中在个人电脑的领域应用内最为普遍。在2004年國際數據資訊公司一次有关未来发展趋势的会议上,副董事长Avneesh Saxena宣布Windows拥有终端操作系统大约70%的市场份额 www.linuxworld.com.au。 Windows操作系統目前最新的穩定版是於2015年7月29日發佈的 Windows 10。Windows Server目前最新的穩定版是2016年9月26日發佈的Windows Server 2016。.
MISRA C
MISRA C是由(MISRA)提出的C語言開發標準。其目的是在增進嵌入式系統的安全性及可移植性。針對C++語言也有對應的標準MISRA C++。 MISRA C一開始主要是針對汽車產業 ,不過其他產業也逐漸開始使用MISRA C:包括航太、電信、國防、醫療設備、鐵路等領域中都已有廠商使用MISRA C。 MISRA C的第一版《Guidelines for the use of the C language in vehicle based software》是在1998年發行,一般稱為MISRA-C:1998.
查看 C语言和MISRA C
Objective-C
Objective-C是一种通用、高级、面向对象的编程语言。它扩展了标准的ANSI C编程语言,将Smalltalk式的消息传递机制加入到ANSI C中。目前主要支持的编译器有GCC和Clang(採用LLVM作為後端)。 Objective-C的商標權屬於蘋果公司,蘋果公司也是這個程式語言的主要開發者。苹果在開發NeXTSTEP操作系統時使用了Objective-C,之后被OS X和iOS继承下來。現在Objective-C与Swift是OS X和iOS操作系统、及与其相关的API、Cocoa和Cocoa Touch的主要编程语言。.
PDP-11
PDP-11為迪吉多電腦於1970到1980年代所銷售的一系列16位元迷你電腦。PDP-11是迪吉多電腦的PDP-8系列的後續機種。PDP-11有著許多創新的特色,而且比起其前代機種更容易撰寫程式。當32位元的後續擴充機型VAX-11推出時,PDP-11已經廣受程式設計師的喜愛。這兩個機型後續的市場,則多由IBM PC、蘋果二號與昇陽電腦的工作站電腦等個人電腦所取代。.
查看 C语言和PDP-11
PDP-7
DEC PDP-7,由迪吉多公司所研發的一款迷你電腦,從1965年開始生產上市。它是PDP系列的一個產品,用來取代PDP-4。它應用迪吉多公司研發的Flip Chip模組,在當時是較為便宜而且運算能力強大的技術。它也是第一款使用繞線(Wire wrap)的PDP產品。 1969年,貝爾實驗室的肯·湯普遜利用一台當時閒置的PDP-7機器,開發多工作業系統。在1970年,釋出第一版的UNIX作業系統。.
查看 C语言和PDP-7
Perl
Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。 Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。 2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。 Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。.
查看 C语言和Perl
PHP
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。 PHP最初是由勒多夫在1995年开始开发的;現在PHP的標準由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放原始碼許可協議GPL不相容。 PHP的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說PHP大多執行在網頁伺服器上,透過執行PHP程式碼來產生使用者瀏覽的網頁。PHP可以在多數的伺服器和作業系統上執行,而且使用PHP完全是免費的。根據2013年4月的統計資料,PHP已經被安裝在超過2億4400萬個網站和210萬台伺服器上。 PHP在windows上有专门的官方移植编译项目,并且分多个VC编译器版本和线程安全特性来提供不同的版本支持。.
查看 C语言和PHP
PL/I
PL/I(),源自第一編程語言(Programming Language One的縮寫),一種程序式、指令式程式語言。由IBM公司在1950年代发明的第三代高级编程语言,用于IBM的MVS、或迪吉多的VAX/VMS等操作系统中。 在系统软件,图像,仿真,文字处理,网络,商业软件等领域均可应用。 有些类似PASCAL语言。.
查看 C语言和PL/I
Rust
Rust是一个由Mozilla主导开发的通用、编译型编程语言。它的设计准则为“安全,并发,实用”,支持函数式,并发式,程序式以及面向对象的编程风格。 Rust 語言原本是 Mozilla 員工 Graydon Hoare 的私人計畫,而 Mozilla 於 2009 年開始贊助這個計畫,並且在 2010 年首次揭露了它的存在。也在同一年,它的編譯器原始碼開始由原本的 OCaml 語言轉移到用 Rust 語言,進行 bootstrapping 工作,稱做 rustc,並於 2011 年實際完成.
查看 C语言和Rust
String.h
string.h是C标准库的头文件,其中包含了宏(巨集)定义、常量以及函数和类型的声明,涉及的内容除了字符串处理之外,还包括大量的内存处理函数;因此,string.h这个命名是不恰当的。 在string.h中定义的函数十分常用,作为C标准库的一部分,它们被强制要求可以在任何支持C语言的平台上运行。但是,部分函数存在一些安全隐患,例如缓存溢出等,导致程序员宁愿使用一些更安全的函数而放弃一定的可移植性。同时,这些字符串函数只能处理ASCII字符集或兼容ASCII的字符集,如ISO-8859-1;在处理存在多字节字符的字符集,如UTF-8时,会产生一个警告,指出对字符串“长度”的计算是以字节而不是以Unicode字符为单位。非ASCII兼容字符集的字符串处理函数一般位于wchar.h中。.
查看 C语言和String.h
Typedef
在C和C++程式語言中,typedef是一個關鍵字。它用來對一個資料類型取一個別名,目的是為了使原始碼更易於閱讀和理解。它通常用於簡化宣告複雜的類型組成的結構 ,但它也常常在各種長度的整數資料型別中看到,例如size_t和time_t。.
查看 C语言和Typedef
UNIX
UNIX,一种计算机操作系统,具有多任务、多用户的特征。于1969年,在美国AT&T公司的贝尔实验室开发類UNIX(UNIX-like)。.
查看 C语言和UNIX
Valgrind
Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。 Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开放源代码奖。 Valgrind遵守GNU通用公共许可证条款,是一款自由软件。.
查看 C语言和Valgrind
Volatile变量
在程序设计中,尤其是在C语言、C++、C#和Java语言中,使用volatile关键字声明的变量或对象通常具有与优化、多线程相关的特殊属性。通常,volatile关键字用来阻止(伪)编译器认为的无法“被代码本身”改变的代码(变量/对象)进行优化。如在C语言中,volatile关键字可以用来提醒编译器它后面所定义的变量随时有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。 在C环境中,volatile关键字的真实定义和适用范围经常被误解。虽然C++、C#和Java都保留了C中的volatile关键字,但在这些编程语言中volatile的用法和语义却大相径庭。.
Watcom c
#重定向 Watcom C/C++编译器.
查看 C语言和Watcom c
汇编语言
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。在不同的设备中,汇编语言对应着不同的机器语言指令集。一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同系统平台之间移植。 使用汇编语言编写的源代码,然后通过相应的汇编程序将它们转换成可执行的机器代码。这一过程被称为汇编过程。 汇编语言使用助记符(Mnemonics)来代替和表示特定低级机器语言的操作。特定的汇编目标指令集可能会包括特定的操作数。许多汇编程序可以识别代表地址和常量的标签(Label)和符号(Symbols),这样就可以用字符来代表操作数而无需采取写死的方式。普遍地说,每一种特定的汇编语言和其特定的机器语言指令集是一一对应的。 许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编寫工具经常会提供巨集,它们也被称为--汇编器。 现在汇编语言已不像其他大多數的程序設計語言一樣被廣泛用于程序設計,在今天的實際應用中,它通常被應用在底層硬件操作和高要求的程序優化的场合。驅動程序、嵌入式操作系統和實時運行程序都会需要組合語言。.
查看 C语言和汇编语言
机器语言
机器语言(machine language)是一種指令集的體--。这种指令集称为機器碼(machine code),是電腦的CPU可直接解讀的資料。 機器碼有時也被稱為原生碼(Native Code),這個名詞比較強調某種程式語言或函式庫與執行平台相關的部份。.
查看 C语言和机器语言
指令式編程
指令式編程(Imperative programming),是一種描述電腦所需作出的行為的編程典範。幾乎所有電腦的硬體工作都是指令式的;幾乎所有電腦的硬體都是設計來執行機器碼,使用指令式的風格來寫的。較高階的指令式編程語言使用變數和更複雜的語句,但仍依從相同的典範。菜譜和行動清單,雖非電腦程式,但與指令式編程有相似的風格:每步都是指令,有形的世界控制情況。因為指令式編程的基礎觀念,不但概念上比較熟悉,而且較容易具體表現於硬體,所以大部分的編程語言都是指令式的。 大部分的高级语言都支援四種基本的語句:.
查看 C语言和指令式編程
指標 (電腦科學)
在计算机科学中,指標(Pointer),是程式語言中的一类数据类型及其物件或變數,用來表示或儲存一個記憶體位址,這個位址的值直接指向(points to)存在该地址的对象的值。 指標參考(reference)了記憶體中一個位址。通過被稱為指標反參考(dereferencing)的動作,可以取出在那個位址中儲存的值。保存在指標指向的位址中的值,可能代表另一個變數、結構、物件或函數。但是從指標值是無法得知它所參照的記憶體中儲存了什麼資料型別的資訊。可以打个比方,假設將電腦記憶體當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是一個指向特定頁面的指標;根據便利貼上面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指標進行反參考的動作。可做一类比以增强对指针的理解:整形(integral)也是一类数据类型及其物件或變數,可定义具体的数据类型如短整形(short)、长整形(long)、超长整形(long long)、无符号整形(unsigned)等等;也可以用于称呼整形值、整形对象、整形变量等。又如,一个浮点指针(float *),可称作指向了一个浮点类型的对象。 在高級語言中,指標有效的取代了在低階語言(如匯編語言與機器碼)直接使用内存地址。但它可能只適用於合法位址之中。因為指標更貼近硬體,編譯器能夠很容易的將指標翻譯為機械碼,這使指標操作時的負擔較少,因此能夠提高程式的運作速度。 使用指標能夠簡化許多資料結構的實作,例如在遍歷字串,查取表格,控制表格及樹狀結構上。對指標進行複製,之後再解參照指標以取出資料,無論在時間或空間上,都比直接複製及存取資料本身來的經濟快速。指標表示法較為直覺,使程式的表達更為簡潔,同時也能夠提供動態機制來建立新的節點。 在程序編程(procedural programming)中,指標也被用來保存系統呼叫流程,以及動態連結資料庫(DLL)的進入點位址。在物件導向編程中,使用函數指標(Function pointer)來綁定方法(method),常見於虛擬方法表(Virtual method table)中。 但是指標本身也存在一些可被滥用之处,在存取某個資料結構時,可能會超出可用範圍,使軟體或作業系統出現異常,嚴重時可造成當機。利用指標去存取或修改非合法可取用的資料,也可能造成安全性問題。为此,C与C++语言规定指针类型为强类型,即指针值不仅是一个内存地址,同时它的数据类型说明了存在这个地址可以安全访问的地址的范围,例如,float*可以访问4个字节的内存空间,double*可以访问8个字节的内存空间。 許多程式語言中都支援某種形式的指標,最著名的是C語言,但是有些程式語言對指標的運用採取比較嚴格的限制。因為指標的機制比較簡單,其功能可以被集中重新實作成更抽象化的參照(reference)資料形別,如Java一般避免用指针,改為使用參照。.
浮点数
在計算機科學中,浮點(floating point,縮寫為FP)是一種對於實數的近似值數值表現法,由一个有效數字(即尾数)加上冪數來表示,通常是乘以某个基数的整数次指數得到。以這種表示法表示的數值,稱為浮点數(floating-point number)。利用浮點進行運算,稱為浮点计算,這種运算通常伴随着因为无法精确表示而进行的近似或舍入。 計算機使用浮點數運算的主因,在於電腦使用二進位制的運算。例如:4÷2.
查看 C语言和浮点数
操作系统
操作系统(operating system,縮寫作 OS)是管理计算机硬件與软件資源的计算机程序,同时也是计算机系统的核心与基石。操作系统需要处理如管理與配置内存、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作网络與管理文件系统等基本事務。操作系统也提供一個讓使用者與系統互動的操作界面。 操作系统的型態非常多樣,不同機器安裝的操作系统可從簡單到複雜,可從行動電話的嵌入式系统到超級電腦的大型作業系統。許多操作系统製造者對它涵盖范畴的定义也不尽一致,例如有些操作系统整合了图形用户界面,而有些僅使用命令行界面,而將图形用户界面視為一種非必要的應用程式。 操作系统理论在计算机科学中,為歷史悠久的分支;。.
查看 C语言和操作系统
数组
在計算機科學中,陣列資料結構(array data structure),簡稱数组(Array),是由相同类型的元素(element)的集合所組成的資料結構,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素對應的儲存地址。 最簡單的資料結構類型是一維陣列。例如,索引為0到9的32位元整數陣列,可作為在記憶體位址2000,2004,2008,...2036中,儲存10個變量,因此索引為i的元素即在記憶體中的2000+4×i位址。陣列第一個元素的記憶體位址稱為第一位址或基礎位址。 二维数组,对应于數學上的矩陣概念,可表示為二維矩形格。例如: a.
查看 C语言和数组
数据段
在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始化且不为0的全局变量的一块内存区域。数据段属于静态記憶體分配。.
查看 C语言和数据段
整数
整数,是序列中所有的数的统称,包括负整数、零(0)与正整数。和自然數一樣,整數也是一個可數的無限集合。這個集合在数学上通常表示粗體Z或\mathbb,源于德语单词Zahlen(意为“数”)的首字母。 在代數數論中,這些屬於有理數的一般整數會被稱為有理整數,用以和高斯整數等的概念加以區分。.
查看 C语言和整数
另见
1972年建立的程式語言
C語言
- ANSI C
- C99
- C和C++運算子
- C替代标记
- C標準函式庫
- C程序设计语言 (书)
- C语言
- C预处理器
- MISRA C
- Typedef
- Volatile变量
- 三字符组与双字符组
- 丹尼斯·里奇
- 可变参数宏
- 块 (C语言扩展)
- 寬字元
- 未定义行为
- 灵活数组类型
- 结构体 (C语言)
- 联合体
- 达夫设备
- 链接性
- 顺序点
C語言家族
- Cg語言
- Cilk
- C语言
- C#与Visual Basic .NET的比较
- Dart
- D語言
- GLSL
- Go
- HMPP开放标准
- Handel-C
- Java
- MISRA C
- Newsqueak
- Not eXactly C
- Objective-C
- OpenACC
- OpenMP
- Perl
- Unified Parallel C
- 比較C♯和Java
- 高级着色器语言
ISO标准化编程语言
- ALGOL 60
- APL語言
- Ada
- BASIC
- C++
- COBOL
- C♯
- C语言
- ECMAScript
- Eiffel
- Forth
- Fortran
- JavaScript
- Modula-2
- PL/I
- Pascal語言
- Prolog
- Ruby
- SQL
系統程式語言
- ALGOL
- ALGOL 60
- ALGOL 68
- Ada
- BCPL
- C语言
- D語言
- Forth
- Free Pascal
- Go
- JOVIAL
- Mesa语言
- Modula-2
- Modula-3
- Nim
- Oberon
- Object Pascal
- PL/I
- Pascal語言
- Rust
- SPARK
- Swift語言
过程式编程语言
- A-0 系統
- ABC (程式語言)
- ALGOL
- ALGOL 60
- ALGOL 68
- ALGOL W
- BCPL
- BOO
- B語言
- CLU
- COBOL
- Common Lisp
- C语言
- D語言
- Fortran
- FoxPro
- Gambas
- Go
- JOVIAL
- ML语言
- Mesa语言
- Nemerle
- Nim
- Oberon
- Occam
- PHP
- PL/I
- PL360
- Perl
- PowerShell
- PureBasic
- Rust
- SPARK
- Standard ML
- Tcl
- Visual Basic
- Visual FoxPro
- 資訊處理語言
静态类型编程语言
- Ada
- Agda
- BOO
- C++
- COBOL
- C♯
- C语言
- D語言
- Fortran
- FreeBASIC
- F♯
- Go
- Haskell
- Haxe
- Java
- Kotlin
- ML语言
- Mesa语言
- Modula-2
- Nim
- OCaml
- Oberon
- Rust
- SPARK
- Scala
- Solidity
- Swift語言
- TypeScript
- Vala
- Visual Prolog
亦称为 C (编程语言),C 编程语言,C//,C/C++,C99,C程序设计语言,C編程語言,K&R C。