那些主流程式語言的知識,C語言

2020-09-05 遠洋號

前言

對於程式語言來說,經常看到有因為各自支持的語言陣營而互懟的,其實根本沒那個必要,都只是一種工具而已。當多數主流語言都會使用時也許你就不會有偏見了,本質不過都是用來描述計算機的一個任務,只是每門語言設計時考慮的側重點不一樣而已。大家最好不要停留在語言層面去爭執,不如把時間花在計算機實現原理和結構的本質上,這樣更能理解程式語言每一行描述的東西在計算機是幹什麼的。本系列將總結現在IT領域主流的那些程式語言的相關知識。



關於C語言

C語言是最經典的語言,很多其他語言的運行環境也是用C來寫的,對於寫程序的人則能不懂C語言呢!提到C首先必然會讓人關聯到指針,當年在大學讓你困惑的指針卻是C語言威力無窮的基礎。C語言可能從更高層面的設計和編寫效率上有所欠缺,但卻足夠經典且容易操控底層。指針雖然風險不小,但卻十分強大。此外ANSI C也增強了C程序在不同作業系統的遷移性,下面列一些C語言的一些基礎知識。



翻譯階段

編寫好的C程序需要先編譯成可執行的機器指令才能運行,這便是翻譯工作。翻譯的主要步驟是編譯和連結,編譯就是原始碼到目標代碼,而連結是將各個目標文件連結起來從而形成一個可執行的程序,當然連結器也會引入被程序所用到的所有標準C函數庫的函數。有時編譯過程還會將預處理作為一個階段,它主要是對源文件進行一些處理,比如將include指定的文件內容填充進來。下面是使用gcc來編譯並連結的例子,經過編譯和連結後得到可執行程序,這兩個步驟通過gcc來完成,命令為gcc hello.c -o hello,最終運行./hello會輸出「hello world」。

34;hello world&include<stdio.h>int main(){ printf(&34;);}複製代碼

我們直接使用如下的gcc命令對其進行編譯,而且不帶任何參數,此時將生成一個名為out.a的可執行文件,通過./a.out能夠輸出「hello world」。

gcc hello.c複製代碼

假如添加name.h/name.c和adder.h/adder.c兩對頭文件和源文件,而且將hello.c稍作修改,三個文件代碼分別如下。

//name.hchar* get_name();//name.cchar* get_name() { char* name = &34;; return name;}複製代碼

//adder.hint add(int a, int b);//adder.cint add(int a, int b) { return (a + b);}複製代碼

//hello.cinclude <stdlib.h>include&34;34;name.h&34;hello world&34;%s%s&34;%s\n&34;a + b = %d\n&34; 39; () * + , - . / :; < = > ? [ ] \ ^ _ { } | ~複製代碼

  1. 空白符

空格、水平制表符、垂直制表符、換行、換頁複製代碼

關於注釋

C語言提供的注釋方式有兩種:以/*開始而以*/結束來注釋多行代碼,以//開始來注釋單行代碼。一般來說對源碼中進行注釋則意味著編譯時會被預處理器清除掉,用空格來替代。

/*第一種注釋方式*///第二種注釋方式複製代碼

關於標識符與關鍵詞

標識符就是我們開發人員對變量、函數、類型、結構體、宏等等的起名,C語言也要求我們要按照它的規定來取名。按照規定,標識符可以由英文大小寫字母(A~Z, a~z)、阿拉伯數字(0~9)、和下劃線(_)組成。需要注意以下幾點:

  • 要求不能以字母開頭。
  • C語言對大小寫字母敏感。
  • C語言不會對標識符的長度進行限制,但標準允許編譯器忽略第31位以後的字符,具體截取前多少位則由不同的編譯器來實現,當截取的字符串相同時則認為是同一個標識符。
  • 標識符不應該亂取名,儘量要讓標識符名字具有相應的意義。

當然C語言還保留了32個特殊的關鍵詞,我們命名的標識符不能與它們相同,否則就會報錯。這32個關鍵詞如下:



相關焦點

  • 程式語言那些事
    提起編程,一定離不開程式語言,有些軟體既可以用A語言來編寫,也可以用B語言來編寫,為什麼會有這麼多程式語言,面對這麼多程式語言該如何選擇。機器語言只要你接觸過編程,你就一定聽說過程式語言最底層就是機器語言,它們是一堆的01符號,通過組合形成了我們想要的各種功能。因為物理電路實現起來方便,因此軟體科學家們選擇了01來表示數據,選擇二進位來表示數字,但是因為難於記憶,因此誕生不久之後,人們迫切希望一種程式語言來取代它。
  • 那些程式語言之父們(下)
    上一篇那些程式語言之父們(中)我們介紹了遠古的程式語言,這次我們介紹幾個21世紀才出現的程式語言。golang之父們c語言有太多的缺點,很多語言又達不到c語言的運行效率,而go運行速度即快,又有很多新重要的新特性,go語言編譯型語言,支持並發計算,自帶垃圾回收。
  • C 語言簡單編程速成
    首先,C 語言是一種相當簡約和直接的語言。除了編程的基礎知識之外,並沒有很高級的概念,這很大程度上是因為 C 語言實際上就是現代程式語言的基礎之一。例如,C 語言的特性之一是數組,但是它不提供字典(除非你自己寫一個)。當你學習 C 語言時,你會學習編程的基礎組成部分,它可以幫助你認識到如今的程式語言的改進及其的精心設計。
  • 為什麼要把學習C語言作為第一門程式語言?
    編程是向計算機發出指令以執行特定任務或執行指令的行為,目前專業行業和學術界使用數百種程式語言。一個人需要熟悉並且能夠使用至少幾種程式語言進行編程才能作為目前專業開發者的成功。學習編程的最好理由在於它對所有人開放,你不需要大學學位即可通過自學成為專業程式設計師。
  • SCL將成為PLC的主流程式語言?
    比如一個一維數組,你在使用時,感覺用LAD不難,但一個二維數組、一個多維數組你再使用LAD編程,難度就要大多了。作為博圖軟體三大程式語言,SCL就是其中的標配,在原來300/400程式語言中,還沒有列入標配行列之中。這也說明了西門子對它的重視,也給大家一個信號。因此了解它、學習它還是有必要的。SCL是三大語言之一,說它是主流的程式語言不為過吧。
  • 現代程式語言起點,C語言之環境搭建
    C 語言是一種廣泛使用的計算機語言,它與 Java 程式語言一樣普及,二者在現代軟體程式設計師之間都得到廣泛使用。C 語言被廣泛使用,比如:Linux 作業系統和 RDBMS(關係資料庫管理系統) MySQL 都是使用 C 語言編寫的。
  • 自學編程如何選擇程式語言?
    當今世界,程式語言種類很多,除非你工作需要,否則我們不必要太去關注那些小眾語言。就同我們說話的語言一樣,英語是世界使用範圍最廣的,而漢語也算是使用人數排行老二的,而且各種語言都能達到同樣的意思,但各種語言的表達方式又各不相同。
  • 自學編程:C語言的概述
    1972年美國貝爾實驗室的Dennis M.Ritchie為克服B語言的諸多不足,在B語言的基礎上重新設計了一種語言,取其第二字母C,故稱為C語言。嵌入式軟體開發:嵌入式軟體開發說得簡單點就是晶片編程,比如我們以後學習在單片機和 ARM 上進行的開發都屬於嵌入式軟體開發。 遊戲開發:2D、3D 遊戲。CS 整個遊戲的引擎全部是用純C寫的。4).C的重要性C語言是計算機界公認的有史以來最重要的語言。 C語言是所有大學工科和理科學生必修的課程。 UNIX、Windows、Linux 都是用C語言開發的。
  • 單片機程序C語言與彙編語言混合編程
    與彙編語言混合編程本文引用地址:http://www.eepw.com.cn/article/201611/322505.htm1.C語言函數和彙編語言函數相互調用在這個示例中C語言函數main()調用彙編語言函數get_rand()以得到一個隨機數;彙編語言函數get_rand()首先調用C語言的標準庫函數rand()得到一個整型隨機值,然後用調用C語言函數mult()的方法把這個隨機值乘以main()函數傳遞給自己的實參,並把乘積值返回給
  • TIOBE8月程式語言排行榜:C語言蟬聯第一,R語言成黑馬
    的相關概念和知識,並且涵蓋了C程式語言最近的變動發展、以及C11標準。本書可作為C語言的教材,適用於需要系統學習C語言的初學者,也適用於鞏固C語言知識或希望進一步提高編程技術的程式設計師。,確保讀者在徹底夯實理論知識的同時,進一步提升實際編程能力。
  • C語言知識梳理
    &include <stdio.h>//來源公眾號:C語言與CPP編程int main(){ int age = 18; float height = 1.85; char unit = &39;; printf(&34;, age); printf(&34;, height, unit); printf(&34;); return 0;}
  • 為什麼要學習「 C」程式語言?
    「 C」編程是另一種程式語言的基本基礎,像java、php,C++等熱門程式語言都是「 C」編程最為底層開發,所以我們通常稱「 C」編程編程「母語」。「 C」編程是一種簡單的語言,可以更快地執行。「 C」編程還是一種極其緊湊的語言,這意味著以「 C」編程方式尋址的程序可以在不同的機器上運行。C程式語言的優勢作為中級語言,C連接了低級和高級語言的功能。C語言可用於底層編程。例如用於內核和驅動程序的腳本,它還有助於使用高級程式語言,例如用於軟體應用程式的腳本等。
  • 為什麼要學習「C」程式語言?
    「 C」編程是另一種程式語言的基本基礎,像java、php,C++等熱門程式語言都是「 C」編程最為底層開發,所以我們通常稱「 C」編程編程「母語」。「 C」編程是一種簡單的語言,可以更快地執行。同樣,「 C」是一種結構化語言,其中的程序分為不同的模塊,每個模塊都可以單獨或相互尋址,從而創建一個單獨的「 C」程序。這種結構使檢查,管理和調試方法變得簡單。
  • 程式語言的前世今生,看 Java、C、C++ 等語言的演變
    ,即那些為人類設計的計算機語言。,於是在 C 語言的基礎上引入並擴充了面向對象的概念,發明了—種新的程序語言並將其命名為 C++, 大大提升了應用程式的編程效率。C/C++並不是萬能的,每種語言的發明必定有它的出眾及優勢性,沒有哪一種程式語言可以解決所有的問題。但是C/C++是最古老的程式語言,很多語言都是由它衍生而來,所以想要學好編程,建議初學者們先學習C/C++,打好基礎,對於後續學習軟體工程如java的同學,會有很大的益處。
  • 「C語言C++編程入門」——編譯機制和語言標準
    因為 C語言是可以移植的,所以它在許多環境中可用,其中包括 UNIX,Linux,Windows等等 。 不過,讓我們首先來看一看許多環境所共有的一些方面。你完全不必知道運行一個 C 程序後面的事情,但了解一點是一個很好的背景知識。
  • C語言編程習慣心得
    從編程菜鳥一路走來,慢慢對編程習慣有了一個新的認識。因為曾經我寫的代碼的可讀性令自己也感到哭啼皆非,搞得自己暈頭轉向。今天特意來分享一下自己的一些關於編程習慣的心得。很多人以為代碼一敲完,能得到預期的結果,就萬事ok,其實不然。後面的程序調試、維護和升級是一個項目中很重要的一部分,這就要求我們必須規範編程習慣。
  • 三天學會C語言編程 | 中篇
    本文是《三天學會C語言編程》的第二篇文章,承接上一篇《三天學會C語言編程 | 上篇》。本文重點介紹C語言的數據類型、表達式、變量和函數等內容。數據類型C語言中有多種數據類型,這些數據的類型與我們日常生活中的數據的類型有些類似。比如整型數和浮點型數(小數),還有一些我們平時接觸不到的數據類型,如字符串類型(上文中的hello world!
  • 未來C程式語言的主要應用到哪些方面?
    C程式語言在大約在50年前發布,今天仍然在所有程式語言中最流行之一。根據TIOBE世界程式語言排名,它在2019年排名第二,甚至在2019年獲得了最佳程式語言稱號。C程式語言是可以直接與電子硬體(例如內核,驅動程序等)開發的,而且,C程式語言是另一種程式語言的基礎,因此,它被稱為所有編程的「母語」。 C程式語言的使用c程式語言是一種非常簡單的語言,通常被全世界的軟體工程師使用。最初,這種語言是用於系統開發,確切地說是構成作業系統的程序。
  • 未來C程式語言的主要應用到哪些方面?
    C程式語言的使用c程式語言是一種非常簡單的語言,通常被全世界的軟體工程師使用。最初,這種語言是用於系統開發,確切地說是構成作業系統的程序。C程式語言的優勢很大程度上可以生成與彙編語言編寫的代碼幾乎一樣快的運行速度。
  • C語言編程工具選擇
    一、編程工具計算機處理的數據、接受的指令是二進位數據,用C語言編寫的程序需要轉變成計算機能識別的二進位,才能讓計算機工作,這個轉換過程就是使用編譯器對源程序進行編譯,雖然可以使用命令行的方式編譯源程序,但使用編程工具不僅可以編譯源程序,還可以編寫、調試等,可以簡化編程工作。