當前位置:首頁 » 編程語言 » c語言介面泛型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言介面泛型

發布時間: 2022-05-19 03:47:23

1. 介紹幾本c語言的代碼練習書

C程序設計之四書五經
榮耀/文
引言 自從Dennis M.Ritchie於1973年設計並實現C語言以來,計算機程序設計領域已經發生了巨 大的變化。以C語言為根基的C++、Java和C#等面向對象語言相繼誕生,並在各自領域大獲成 功。今天,C及其後裔幾乎統治了計算機程序設計世界。可以這么說,C語言的誕生是現代程序 語言革命的起點,它改變了程序設計語言發展的軌跡,是程序設計語言發展史中的一個里程碑。 然而,C並不僅僅是其他語言的起點和基礎,否則它早已成為程序設計語言發展過程中又 一個被遺棄者。和當初發明時一樣,C語言今天依然至關重要。它的表達力、效率、簡練、緊 湊、對機器的最終控制以及跨平台的高度移植性,使其在系統編程、嵌入式編程等領域一直占 據著統治地位,而C99標準的制訂則再一次使C語言煥發出新的活力。下文介紹C程序設計領域 中的幾本好書,其中一些堪稱經典。
1. Brian W.Kernighan, Dennis M.Ritchie,《C程序設計語言》 清華影印版、習題集;機械譯文版(新版、老版):習題集 這是迄今為止在所有程序設計語言書籍中最廣受尊敬的一部經典,是任何一名C程序員的 必讀之作。因為出自C語言的設計者 Dennis M.Ritchie 和著名的計算機科學家 Brian W.Kernighan之手,它被昵稱為「K&R C」。是它首先引入了「Hello World!」程序,這個程序幾乎 成了後來任何一本入門性程序設計語言書籍中的第一個例子。 如同C語言本身簡潔緊湊而極具威力一樣,這本書輕薄短小而極富張力。通過簡潔的描述 和典型的示例,它全面、系統、准確地講述了C語言的各個特性以及C程序設計的基本方法,內 容涵蓋基本概念、類型和表達式、控制流、函數與程序結構、指針與數組、結構、輸入與輸出、 UNIX系統介面以及標准庫等內容。 簡潔清晰是這本書最大的特色。這本小書可以教給你許多比它厚幾倍的「大部頭」的知識。 我認為那些動輒洋洋灑灑拼湊出好幾百頁乃至上千頁的技術作者應該好好向K&R學一學。對於 中、高級程序員而言,如果希望迅速獲得C語言的嚴肅知識而又不願意多花費哪怕一丁點時間, 這本書就是首選。四書五經:CSDN《程序員》四書五經專欄歷年文章匯總 順便說一句,這本書的索引製作非常出色,極具實用價值,這可能首先要歸功於正文部分 的簡明扼要。此外,盡管它看上去很像一本教程,但其實更是一本寫給專業程序員的指南。如 果你不具備任何其他語言程序設計背景或基本的C語言知識,這本書也許並不適合用作你的C語 言啟蒙讀物。
2. Perter Van Der LinDen,《C專家編程》 C專家編程 C語言是嚴肅的程序員語言,但這並不意味著C語言書籍必須板著面孔說教。在這本被C程 序員昵稱為「魚書」(封面上有一條「醜陋的」腔棘魚)的著作中,作為SUN公司編譯器和操作系統 核心開發組成員之一,Peter淋漓盡致地展示了其深厚的技術沉澱、豐富的項目經驗、高超的寫 作技巧以及招牌式的幽默。在這部作品中,作者以流暢的文字、詼諧的筆法將逸聞典故、智慧 和幽默自然地融入技術描述中,讀來宛若一本小說,極富趣味。 本書講述了C語言的歷史、語言特性、聲明、數組、指針、連接、運行時以及內存使用等 知識,揭示了C語言中許多隱晦之處,尤其深入解析了聲明、數組和指針、內存使用等方面的 細節。要想成為一名專家級C程序員,這些內容都是必須掌握的。和其他滿是抽象例子的C語言 書籍不同,這本書充滿了大量的來自真實世界的C程序設計實例,它們對C程序員具有很高的參 照價值。另外,每一章都以極富趣味的「輕松一下」收尾,而附錄A「程序員工作面試的秘密」則是 任何語言的程序員在應聘工作前增強自信的好材料。 我懷疑真正的C專家可能用不著看這本書 ——從內容到組織方式到行文風格都決定了這 是一本輕松愉快的「從菜鳥到高手」的進階讀本,所以,它理應擁有更廣泛的讀者群。初級程序 員往往更需要熱情的鼓勵,在閱讀這本書的過程中,你定會深深地被作者對編程的激情所感染。 世間並無完美。我認為這本書的缺陷在於,和大多數平庸的C語言書籍一樣,它畫蛇添足 地加入了一章關於C++的描述。在今天看來,這個描述既不全面也有失公允。不過,鑒於作者 是在1994年從一名C程序員的角度去觀察C++,這一點也就不足為奇了。
3. Samuel P. Harbison, Guy L. Steele,《C語言參考手冊(第五版)》四書五經:CSDN《程序員》四書五經專欄歷年文章匯總 影印版(機械工業出版社)、中文版(機械工業出版社) 在C語言參考手冊類書籍里,Samuel P. Harbison 和Guy L. Steele合著的C: AReference Manual是非常出色的一本。這本手冊的第五版新增了對C99標準的介紹,以便滿足新時期C語 言學習的需要。全書共分為兩大部分,第一部分專注於C語言特性,第二部分則全面討論了C標 准庫。本書涵蓋C99、C89、傳統的C、所有版本的C運行庫以及編寫與C++兼容的C代碼等一 切知識。 這本手冊只是中等厚度,但它比「比它更厚」的其他參考手冊更清晰地描述了C語言的現在和 過去的方方面面。整本手冊技術細節描述精確,組織條理清楚,內容完備詳盡而又簡明扼要。 可以這么說,它在廣度、深度和精度方面都是出類拔萃的。對於中、高級C程序員而言,這本 手冊值得常備案頭,它幾乎肯定要比K&R的著作使用頻率更高。
4. David Hanson,《C語言介面與實現:創建可重用軟體的技術》,機械工業出版社 C語言介面與實現:創建可重用軟體的技術 C語言能夠歷經三十多年而不衰,一個重要的原因在於它的適應能力。在這「復用」、「面向 對象」、「組件」、「異常處理」等先進機制漫天飛舞的年代,C語言仍然能夠憑借它小而優雅的語言 特性,在相當程度上滿足現代軟體體系架構提出的要求。只不過,想要達到這個程度,必須要 在C的應用功力上達到最高層次。在嵌入式、系統軟體以及對性能要求極高的系統開發中,開 發人員必須達到這樣的層次,熟練掌握C語言的高級特性,才能夠同時滿足效率和靈活性、復 用性的要求。可惜,雖然C語言技術圖書汗牛充棟,但是關注這個峰頂之域的作品卻是屈指可 數。David Hanson的C Interfaces and Implementations就是個中翹楚。 David Hanson是業內大名鼎鼎的自由編譯器lcc的合作者。在這個項目中,他負責提供高度四書五經:CSDN《程序員》四書五經專欄歷年文章匯總 可復用的基礎架構。在不斷的實踐中,他完全使用ANSI C形成了一整套可復用組件庫。這套組 件庫架構清晰,性能優異,而且提供了很多高級的特性,比如類Win32 SEH的異常處理機制、 可移植的線程庫、高性能的內存池、豐富的可復用數據結構組件。David Hanson把他在創作這 些組件的過程中所積累的心得以及對其源碼的精緻剖析原原本本地寫在了這本書里。這樣的著 作,當然堪稱C語言領域里的銘心絕品。難怪已故著名技術作家Richard Stevens對此書贊不絕 口,他說:「這本書中的技術,對於大部分C程序員來說,已經遺忘得太久了。」對於希望能在C 語言應用上達到最高層次的核心程序員而言,這本書是難得的必讀之作。
其他 除了以上四本書以外,我還樂意推薦Andrew Koenig的著作《C陷阱和缺陷》(人民郵電出 版社)和Deitel父子合著的C How to Program兩本書。 C陷阱和缺陷 Andrew Koenig是世界上屈指可數的C++專家,他的這本書可能是最薄的一本C語言經典。 它簡明扼要地講述了C程序設計中的陷阱和缺陷,包括詞法陷阱、語法陷阱、語義陷阱、連接、 庫函數、預處理器以及可移植性缺陷等,最後一章還給出了關於如何減少程序錯誤的建議以及 前面各章問題的參考答案。盡管這個小冊子成書於C89標准制定之前,然而,即使到了C99早 已頒布的今天,書中提到的大多數陷阱和缺陷一如十五年前那樣使我們警醒。 C程序設計教程 Deitel父子合著的C How to Program一直是非常好的C語言入門教程,我手頭的中譯本名為 《C程序設計教程》(機械工業出版社出版,原書第二版)。除了對技術的正規描述(輔以許 多簡明扼要的例子)外,每一章後面都帶有小結、術語、常見的程序設計錯誤、良好的程序設四書五經:CSDN《程序員》四書五經專欄歷年文章匯總 計習慣、性能忠告、可移植性忠告、軟體工程評述、自我測驗練習及答案等。整書內容清晰, 組織良好,易於閱讀和理解。值得一提的是,有許多入門書讀完一遍即可扔掉,而這一本是個 例外。 結語 以上這幾本書很大程度上局限於描述C語言及標准庫本身,如果希望學習更專業的、領域 相關的C程序設計技術,你可以在選擇閱讀這幾本書的基礎上繼續查閱專門書籍。此外,在C語 言書籍領域,水平不相上下的作品有很多,這幾本只是根據我自身的閱讀體驗而做出的推薦。 我並不是一名C程序員,我的大多數時間都花在C的後裔語言尤其是C++身上了。然而,正 如你知道的那樣,C++並不全是類和模板,不全是面向對象和泛型編程,在較低的層面,C++ 的各個實現一如既往在很大程度上兼容C。C++和C的親密關系決定了每一本C語言經典都應該 是C++程序員的讀物。 這世界變化得真是太快。各色新事物層出不窮,讓人眼花繚亂、目不暇接。人們也很容易 被那些五光十色的花哨玩意兒所吸引,常常會忘記構築過去、現在和未來的堅實基礎。C語言 就是這樣的基礎之一。今天,世界上有許多我們看不見的重要軟體是用C語言(以及C++等)編 寫而成的,正是它們在默默地支撐著這個信息世界的運轉。

2. C語言 java 和C#三者的語法區別

Java語言是一種完全的面向對象語言,雖然它的底層(運行時庫)是用C語言開發的,可是並不依賴於C。因為Java的運行是在運行時庫的支持下進行的,所以運行效率比起可以更接近底層的C/C++來說效率會有所影響,不過Java的類庫採用很好的設計理念設計,非常好用,也非常實用,已經成為業界的一種標准開發語言。它的跨平台的特性尤其讓很多開發者歡迎,你只需要開發一次就能在所有安裝了Java運行時庫的系統上運行。Java發展了十幾年了,可以應用領域非常之廣泛,Web開發有JSP,J2EE,桌面領域現在有JavaFX。

C#是微軟開發的一種編程語言,語法類似Java,幾乎就是從Java的翻版。運行原理和Java也類似,也是通過運行時庫的支持運行。不過支持的平台還很有限。JAVA幾乎被所有平台支持,而C#目前只被Windows和Linux支持,Windows下的支持當然是由微軟自己開發的,而Linux下的支持則有MONO支持。實際上,MONO也是把C#應用轉化為JAVA應用而已,所以本質上,C#仍然只是被微軟自己的操作系統支持。應用平台受到限制,是它最大的缺點。

C/C++的優點在於與底層比較接近,可以控制的粒度更加精細,是開發系統級應用的最佳選擇。關於缺點,我想正是源於其優點,因為它們能控制的編程元素粒度精細,所以編程比較困難,煩瑣,容易出錯。

Java和C#都比較高級,可以看作高級語言的高級語言,優點是開發容易,但運行效率不如更為底層的C/C++。

具體選擇使用的時候,可以根據實際的項目需要選擇。運行效率要求高的,底層控制要求高的用C/C++,否則可以選擇Java或C#;跨平台的要求高的可以用Java。

關於跨平台,C/C++也是很好的語言,因為所有平台都支持,不同的是,不同平台支持的實現不同,類庫不同,要編寫跨平台的程序,需要選擇跨平台的類庫,如標准類庫,如果標准類庫的支持不夠也只需要附加編寫一個跨平台的支持類庫。

幾種語言內容都很多,在這里就不詳細列舉了,要學好每一種都需要花費相當大的精力,祝你能有所成就

3. 怎樣學好C#和SQL,應該注意哪些重點和難點

在之前的問題里我回答過類似的很多問題,C#的重點主要有2點,1是對C語言的程序結構和過程的應用和編程思路,第2是面向對象的編程思路;這2點是對學好C#最重要的2點;

在實際學習中,首先要掌握C語言的編程思路,並且能用C寫出一些簡單的DOS應用程序就可以,對C語言裡面的各種關鍵字的使用一定要熟練掌握,指針可以稍微看一下,因為C#裡面沒有指針,但是我建議你還是好好學一下指針;

在C#裡面,重點熟悉一下和C相關的各種關鍵字的使用,C#和C在相同關鍵字的使用上也有一些差別,但是作用或功能以及設計思路不變;

學好委託、繼承等一些面向對象思想中比較重要的章節;並能熟練的使用即可。
學C#就是學面向對象的編程思路,我們傳統的編程思路是面向過程,從面向過程轉變到面向對象 還是有一定的難度的,不過多做練習,即便不會,背也要把代碼背下來,等你以後再回過頭來看 一看就明白!

以上是我對C#的一些學習思路和方法;

下面說一下SQL;

SQL資料庫是應用最廣泛的大中形資料庫之一,單拿資料庫來說,資料庫的實現無非分為4種,增,刪,改,查。 所有的資料庫也不外乎對資料庫的這4種應用罷了。

SQL的學習方法無外乎對增刪改查指令的使用,剛開始的時候 可以用簡單的增刪改查的SQL語句進行建庫建表的一些操作,但是後期一定要學習更為深入的指令的使用,比如嵌套查詢,多條件查詢 。總之 資料庫入門不難,但是如果想學好 學深,需要下苦功夫!

不多說了,最後祝你學業有成!

4. C語言和java相比較,各自的優勢是什麼

c語言與java的區別與各自的優勢:(c是面向過程的,java是面向對象的)

1.語言背景:
C語言是在單機時代應用非常廣泛,它融合了高級語言的簡單易用和匯編語言的執行效率。而Java是在研究電子消費產品開發平台和互聯網應用的基礎上實現的,它的許多語言特性也是從c語言那裡沿用和發展,並且使面向對象更加自然和完善(如安全性和代碼的移動性)。

2.語言跨平台:
C語言不可以跨平台,JAVA 是不怕這一點的,因為Java可以跨平台,在windows 和 unix 等系統上都可以很好的運行。

3.指針管理:
指針是c語言最大的優點,它可以使用戶幾乎可以訪問計算機的所有內存資源和其他部分資源(就是指那裡打那裡)。同時也是c語言程序最難掌握和調試的問題,並且給系統的安全性和穩定性帶來很大的困難。 而java中沒有指針的概念,盡管也有數組和對象的引用的概念,但它的管理全部交給系統管理,這樣限制了用戶的資源的訪問,但是也給java系統帶來安全性和穩定性。JAVA語言讓編程者無法找到指針來直接訪問內存無指針,並且增添了自動的內存管理功能,從而有效地防止了c語言中指針操作失誤,如野指針所造成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部還是使用了指針,只是外人不得使用而已。這有利於Java程序的安全

4.封裝
在java中引入了package的概念,使面向對象和面向組件開發更加方便,而在c語言中沒有package概念,需要其他方式來實現。Java都能夠實現面向對象思想(封裝,繼乘,多態)。而由於c語言為了照顧大量的C語言使用者,而兼容了C,使得自身僅僅成為了帶類的C語言,多多少少影響了其面向對象的徹底性!JAVA則是完全的面向對象語言,它句法更清晰,規模更小,更易學。它是在對多種程序設計語言進行了深入細致研究的基礎上,據棄了其他語言的不足之處,從根本上解決了c語言的固有缺陷。

5.數據類型及類
Java是完全面向對象的語言,所有函數和變數部必須是類的一部分。除了基本數據類型之外,其餘的都作為類對象,包括數組。對象將數據和方法結合起來,把它們封裝在類中,這樣每個對象都可實現自己的特點和行為。而c語言允許將函數和變數定義為全局的。

6.自動內存管理
Java程序中所有的對象都是用new操作符建立在內存堆棧上, Java自動進行無需內存回收操作,不需要程序員進行刪除。而c語言中必須由程序貝釋放內存資源,增加了程序設計者的負扔。Java中當一個對象不被再用到時,無用內存回收器將給它加上標簽以示刪除。JAVA里無用內存回收程序是以線程方式在後台運行的,利用空閑時間工作。

7. 字元串:
C語言不支持字元串變數,在c語言程序中使用Null終止符代表字元串的結束,在Java中字元串是用類對象(strinR和stringBuffer)來實現的,這些類對象是Java語言的核心!

Java沒有函數,作為一個比c語言更純的面向對象的語言,Java強迫開發人員把所有例行程序包括在類中,事實上,用方法實現例行程序可激勵開發人員更好地組織編碼。

我覺得這篇文章寫的很好,就摘錄給你看了,希望可以幫助到樓主

5. C語言中,泛型究竟是什麼啊,有詳細的解釋嗎

在C語言中好像沒有泛型的說法,泛型是在C++中引入的,但是在C語言中有一個運算符叫做連接符,就是##,使用它可以實現類似於泛型的效果,因為代碼較長,所以我在自己空間中做了一個雙向鏈表的舉例供你參考,連接如下:
http://hi..com/ll_1s/item/89f8bd9937371459f14215fe
另外,如果要深入學習##和#的使用,請參考:
http://www.360doc.com/content/08/0515/10/26398_1260866.shtml

如果要學習泛型相關知識,請參考:
http://ke..com/view/1105026.htm

6. 創建ja泛型介面,「Ja」是什麼意思

Ja程序語言的風格十分接近C語言。
Ja繼承了C語言對象導向技術的核心,舍棄了C語言中容易引起錯誤的指標(以參照取)、運算符重載!

7. c語言的編程開發

GCC,GNU組織開發的開源免費的編譯器
MinGW,Windows操作系統下的GCC
Clang,開源的BSD協議的基於LLVM的編譯器
Visual C++ :: cl.exe,Microsoft VC++自帶的編譯器 CodeBlocks,開源免費的C/C++ IDE
CodeLite,開源、跨平台的C/C++集成開發環境
Orwell Dev-C++,可移植的C/C++IDE
C-Free
Light Table
Visual Stdio系列 起初,C語言沒有官方標准。1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。這本書被 C語言開發者們稱為K&R,很多年來被當作 C語言的非正式的標准說明。人們稱這個版本的 C語言為K&R C。
K&R C主要介紹了以下特色:
結構體(struct)類型
長整數(long int)類型
無符號整數(unsigned int)類型
把運算符=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。
即使在後來ANSI C標准被提出的許多年後,K&R C仍然是許多編譯器的最 准要求,許多老舊的編譯器仍然運行K&R C的標准。 1970到80年代,C語言被廣泛應用,從大型主機到小型微機,也衍生了C語言的很多不同版本。
1983年,美國國家標准協會(ANSI)成立了一個委員會X3J11,來制定 C語言標准。
1989年,美國國家標准協會(ANSI)通過了C語言標准,被稱為ANSI X3.159-1989 Programming Language C。因為這個標準是1989年通過的,所以一般簡稱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標准。 1999年1月,國際標准化組織(ISO)和國際電工委員會(IEC)發布了C語言的新標准,名叫ISO/IEC 9899:1999 - Programming languages -- C ,簡稱C99標准。這是C語言的第二個官方標准。
在C99中包括的特性有: 增加了對編譯器的限制,比如源程序每行要求至少支持到 4095 位元組,變數名函數名的要求支持到 63 位元組(extern 要求支持到 31)。 增強了預處理功能。例如: 宏支持取可變參數 #define Macro(...) __VA_ARGS__ 使用宏的時候,允許省略參數,被省略的參數會被擴展成空串。 支持 // 開頭的單行注釋(這個特性實際上在C89的很多編譯器上已經被支持了) 增加了新關鍵字 restrict, inline, _Complex, _Imaginary, _Bool 支持 long long, long double _Complex, float _Complex 等類型 支持不定長的數組,即數組長度可以在運行時決定,比如利用變數作為數組長度。聲明時使用 int a[var] 的形式。不過考慮到效率和實現,不定長數組不能用在全局,或 struct 與 union 里。 變數聲明不必放在語句塊的開頭,for 語句提倡寫成 for(int i=0;i<100;++i) 的形式,即i 只在 for 語句塊內部有效。 允許採用(type_name){xx,xx,xx} 類似於 C++ 的構造函數的形式構造匿名的結構體。 復合字面量:初始化結構的時候允許對特定的元素賦值,形式為:
struct test{int a[3],b;} foo[] = { [0].a = {1}, [1].a = 2 }; struct test{int a, b, c, d;} foo = { .a = 1, .c = 3, 4, .b = 5 }; // 3,4 是對 .c,.d 賦值的 格式化字元串中,利用 u 支持 unicode 的字元。 支持 16 進制的浮點數的描述。 printf scanf 的格式化串增加了對 long long int 類型的支持。 浮點數的內部數據描述支持了新標准,可以使用 #pragma 編譯器指令指定。 除了已有的 __line__ __file__ 以外,增加了 __func__ 得到當前的函數名。 允許編譯器化簡非常數的表達式。 修改了 /% 處理負數時的定義,這樣可以給出明確的結果,例如在C89中-22 / 7 = -3, -22% 7 = -1,也可以-22 / 7= -4, -22% 7 = 6。 而C99中明確為 -22 / 7 = -3, -22% 7 = -1,只有一種結果。 取消了函數返回類型默認為 int 的規定。 允許 struct 定義的最後一個數組不指定其長度,寫做 [](flexible array member)。 const const int i 將被當作 const int i 處理。 增加和修改了一些標准頭文件,比如定義 bool 的 <stdbool.h> ,定義一些標准長度的 int 的 <inttypes.h> ,定義復數的 <complex.h> ,定義寬字元的 <wctype.h> ,類似於泛型的數學函數 <tgmath.h>, 浮點數相關的 <fenv.h>。 在<stdarg.h> 增加了 va_ 用於復制 ... 的參數。里增加了 struct tmx ,對 struct tm 做了擴展。 輸入輸出對寬字元以及長整數等做了相應的支持。 GCC和其它一些商業編譯器支持C99的大部分特性。 2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)再次發布了C語言的新標准,名叫ISO/IEC 9899:2011 - Information technology -- Programming languages -- C ,簡稱C11標准,原名C1X。這是C語言的第三個官方標准,也是C語言的最新標准。
新的標准提高了對C++的兼容性,並增加了一些新的特性。這些新特性包括: 對齊處理(Alignment)的標准化(包括_Alignas標志符,alignof運算符, aligned_alloc函數以及<stdalign.h>頭文件。 _Noreturn 函數標記,類似於 gcc 的 __attribute__((noreturn))。 _Generic 關鍵字。 多線程(Multithreading)支持,包括: _Thread_local存儲類型標識符,<threads.h>頭文件,裡麵包含了線程的創建和管理函數。 _Atomic類型修飾符和<stdatomic.h>頭文件。 增強的Unicode的支持。基於C Unicode技術報告ISO/IEC TR 19769:2004,增強了對Unicode的支持。包括為UTF-16/UTF-32編碼增加了char16_t和char32_t數據類型,提供了包含unicode字元串轉換函數的頭文件<uchar.h>. 刪除了 gets() 函數,使用一個新的更安全的函數gets_s()替代。 增加了邊界檢查函數介面,定義了新的安全的函數,例如 fopen_s(),strcat_s() 等等。 增加了更多浮點處理宏。 匿名結構體/聯合體支持。這個在gcc早已存在,C11將其引入標准。 靜態斷言(static assertions),_Static_assert(),在解釋 #if 和 #error 之後被處理。 新的 fopen() 模式,(「…x」)。類似 POSIX 中的 O_CREAT|O_EXCL,在文件鎖中比較常用。 新增 quick_exit() 函數作為第三種終止程序的方式。當 exit()失敗時可以做最少的清理工作。

8. C語言的結構化和模塊化有什麼區別

結構化體現一種程序設計的思想,其基本原則是:從上到下,分而治之。
可以按照功能或其它原則把程序分成幾個部分,分別設計。進而組合在一起,這時要考慮幾個部分的通融性和兼容性。
模塊化更多的是考慮一個功能在不同的情況下的通用性,我的意思是比如你設計了一個功能,你需要保證它能適應於不同的情況,比如適應於不同的數據類型等等。

模塊化有點泛型的意思,就像系統提供的泛型函數,任何數據類型都可以調用的,另外,模塊化具有封裝性,需要把所設計的模塊封裝起來,對外只提供介面,其它部分只可以通過介面進行調用,因為考慮它的通用性,所以必須考慮它本身以及介面的通用性:它本身必須能夠處理任何數據類型,介面必須能夠接受和處理任何數據類型。

9. C語言,C#,.net的區別

先說.Net:它不是語言,而是微軟推出的開發平台,在這個平台上可以使用VB、C#、C++、Java等語言編寫程序。

C/C#准確的說,是兩種語言。

C語言是Combined Language(組合語言)的中英混合簡稱。是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言, 編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。因此,它的應用范圍廣泛,不僅僅是在軟體開發上,而且各類科研都需要用 到C語言,具體應用比如單片機以及嵌入式系統開發。
C#是微軟公司發布的一種面向對象的、運行於.NET Framework之上的高級程序設計語言。並定於在微軟職業開發者論壇(PDC)上登台亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、介面、與Java幾乎同樣的語法和編譯成中間代碼再運行的過 程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windows網路框架的主角。

但是由於C/C++的語法90%相似,而且通常支持C++的編譯器也支持C編譯,所以通常把C/C++一起提。而C#則完全是另一套語言了,雖然語法和C/C++也有很大一部分的相似。
C++在C的基礎上改善了語法(使之更易用),增加了模板(泛型)、引用以及面向對象等內容,而且還提供了一套標准模板庫。可以說使用C++語言比直接使用C語言更容易,更方便。當然,也更難學一點。

而 C#的出現則是為了和Java抗衡,由於Java擯棄了C/C++中很多容易讓人混淆的特性,以Java為模板的C#也同樣做了這些事情,甚至為了超過 Java,讓很多事情變得更簡單。但表面簡單的背後是一套復雜的.NET Framework作為支持。因此,學習C#的重點和難點已經不是語法本身,而是了解和學會應用.NET Framework。

具體的事情,三言兩語是說不清楚的,建議你多看看論壇上大家對這些語言的評價。最好當然是你能都找本書來看看,親身體會一下——比較耗時間就是了。

希望我的回答對你有幫助!

10. c++跟c語言有什麼區別啊,不一樣嗎

繼承:C + +支持多重繼承,C#類只能繼承一個基類的實現,但可以實現多個介面。
數組:聲明C#數組和C + +數組的語法不同的報表中。在C#中,「[]」標記出現在後面的數組類型。
3。數據類型:C + +,布爾類整數轉換,但C#bool類型和其他類型(int)轉換。 long類型:C#中,long數據類型為64,而在C + + 32。
4.struct類型:在C#類和結構的不同語義。 struct是值類型,而類是引用類型。
5.switch聲明:switch語句在C + +,C#不支持從一個case標簽貫穿到另一個case標簽。在
6.delegate類型:委託與C + +函數指針基本相似,但前者具有類型安全的,它是安全的。
7。從派生類中重寫,調用基類的成員。基地
8。使用new修飾符顯式隱藏繼承的成員。
9。父類的方法重寫方法需要使用虛擬名聲子類方法override關鍵字。
10。預處理器指令條件編譯。 C#不使用頭文件。 C#預處理器指令
11異常處理:終於說明書上介紹的C#,C + +沒有。
12.C#運算符:C#支持其他運營商,如和typeof。還介紹了一些邏輯運算符的不同功能。
13隻能被稱為是靜態的,靜態方法的使用,通過改變靜態變數的類的名稱。
14。替代C + +初始化列表,在基類的構造方法。
15.Main方法和C + +和Java,主要功能聲明的,主要的,而不是與主
16方法參數:C#支持ref和out參數,這是用來參考的,而不是指針傳遞參數。
17。只使用不安全的不安全模式下指針在C#。
18。在C#運算符重載以不同的方式進行。
19。字元串:C#從C + +字元串的字元串是不同的。
20.foreach:從VB引進C#foreach關鍵字允許遍歷數組和集合。
21.C#全局方法和全局變數:方法和變數必須包含在類型聲明(如類或結構)。的
22.C#頭文件和#include指令:指令是用來指不完全限定的類型名稱命名空間的類型。
#23.C當地的變數不能被用於初始化之前。
24析構函數:C#,無法控制的,因為析構函數由垃圾收集器會自動調用析構函數的調用時間。
25析構函數構造函數:C + +類似的C#類的構造函數是自動生成的默認構造函數。默認構造函數將所有欄位初始化為它們的默認值。
26。,方法的參數不能有默認值嗎?在C#。如果你想獲得同樣的效果,你需要使用方法重載。
另一個區別:
C + +希望提供先進的面向對象的功能,同時提供良好的性能,在設計初期。然而,為了確保兼容的程序和以前的知識,開發C + +和C語言幾乎完全兼容。現代計算機C語言本身是一個高層次的抽象,你可以直接訪問的地址,幾乎所有的內存地址可以通過指針訪問堆和棧的結構反映了等待。當然,C + +也具有這樣的特性。用c + +的逐步發展,引入泛型編程泛型編程技術和STL標准模板庫,C + +和C的不同成長。基本上是C + +是專為高效利用的大型高性能面向對象技術或通用技術(通常比較低級別的應用程序)編寫的應用程序在。

C#底層的虛擬機機制,以減少C / C + +語言往往容易出現內存泄漏和安全問題,成本的降低運行速度。簡化的編程語言(C#比C + +更簡單低得多)的復雜性,誰擁有的開發大大提高了效率。 C#的凈巨大的類庫,這樣的好處是c + +沒有。因此,C#適當的加工業務應用程序的開發企業。同時,微軟的操作系統,伺服器程序,桌面應用程序。 Net平台的統一。在歷史上只有在轉化的過程中,從16位平台到32位平台(微軟技術)時代,微軟類似的情況發生。因此,為開發商的凈變化可能是痛苦的(因為有很多新的東西學習),但也充滿了機會。
事實上,有很多相同的地方。我希望能幫助你。