Linux中國

在 Linux 上學習 C 語言的五種方式

請下載我們的電子書獲得在 Linux 和 FreeDOS 上 C 語言編程的提示和技巧。

有許多關於為什麼 C 語言能夠經久不衰的說法。或許是因為它語法簡單明了。又或許是因為它常被認為是實用的語言,因為它不基於其他高級語言,可以在任何平台上編譯運行。C 顯然是一種強大的語言,並且我認為它經久不衰與它作為其他技術的基礎的方式相關。這裡有 5 項我喜愛的基於 C 語言的技術,希望它們能夠幫助你更多的了解 C 語言。

1、GObject 和 GTK

C 語言不是面向對象編程的語言。它沒有 class 關鍵字。 一些人用 C++ 進行面向對象編程,但是還有一些人堅持用 C 和 GObject 庫。GObject 庫為 C 語言提供了一個 class 結構體,GTK 項目以提供可通過 C 訪問的工具包而聞名。沒有 GTK ,就沒有 GIMP (GTK 就是為此開發的)、GNOME 和其他成千上百流行的開源應用。

了解更多

GObject 和 GTK 是使用 C 開始進行 GUI 編程的絕佳方式。它們「裝備精良」,可以讓你用 C 語言進行圖形應用的編程,因為開發者為你做了許多「繁重工作」。他們定義了類和數據類型,創建了工具包,你所要做的就是將所有東西放在一起。

2、Ncurses

如果 GTK 超過了你的需求,你或許認為一個 終端用戶界面 terminal user interface (TUI)更適合你。Ncurses 庫可以在終端創建「小部件」,創建一種在終端窗口上繪製圖形的應用程序。你可以使用方向鍵控制界面,選擇按鈕和元素,就像不用滑鼠來使用 GUI 應用一樣。

了解更多

利用 Ncurses 庫使用 C 語言寫一個 猜數字 遊戲。

3、Lua 和 Moonscript

Lua 是一種腳本語言,它可以使用內置的 C API 訪問 C 語言庫。它十分精巧、快捷以及簡單,擁有約 30 個函數和少量內置庫。你可以使用 Lua 進行系統自動化、遊戲修改和腳本編寫、使用 LÖVE 之類的前端進行遊戲開發,或者使用 GTK 進行一般應用程序開發(例如 Howl 文本編輯器)。

了解更多

Lua 十分好的一點是你可以從它開始學習掌握基本的編程理念,然後當你有足夠勇氣直面基礎編程語言時,再探索它的 C 語言 API 。另一方面,如果你只會 Lua ,那也沒事兒。Lua 有很多的 外部庫 ,使其成為各種開發方式的絕佳選擇。

4、Cython

Lua 不是唯一帶有 C 介面的編程語言。Cython 是一種編譯器和編程語言,旨在使為 Python 編寫 C 擴展就像編寫 Python 代碼一樣容易。本質上,你可以編寫 Python 並最終得到 C 語言程序。最簡單的示例:

print("hello world")

創建一個 setup.py 腳本:

from setuptools import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize("hello.pyx")
)

運行該 setup 腳本:

$ python3 ./setup.py

最後你會在同一個目錄中得到一個 hello.chello.cpython-39-x86_64-linux-gnu.so 文件。

了解更多

Cython 是 Python 的一個超集,支持 C 語言的函數和數據類型。它不可能幫你直接學習 C 語言,但它為希望學習 C 代碼並將其集成到 Python 中的 Python 開發人員開闢了新的可能性。

5、FreeDOS

了解更多 C 語言的最好方式是編寫 C 代碼,沒有什麼比寫你可以真正使用的代碼更令人激動的了。FreeDOS 項目是 DOS 的開源實現, 而 DOS 是 Windows 的前身。或許你已經用過 FreeDOS 了,或者作為運行 BIOS 更新程序的便捷開源方法,或者在模擬器中玩經典的計算機遊戲。你可以用 FreeDOS 做更多事情。它是學習 C 語言的理想平台,其中包含一系列工具,鼓勵你編寫自己的命令和簡單(或不那麼簡單,如果你願意)的應用程序。當然你可以在任何系統上寫 C 代碼,但是 FreeDOS 的便利可能會讓你感到耳目一新。天空有極限,但即使在地面上,你也可以用 C 做一些非常有趣的事情。

下載電子書

你可以從我們編寫的新 電子書 中學到更多 C 語言,並在我們的電子書中了解有關 FreeDOS 上 C 語言的更多信息。這些是編程文章的集合,可幫助你學習 C 語言,並演示如何以有用的方式用 C 寫一些代碼。

下載電子書

via: https://opensource.com/article/22/7/learn-c-linux

作者:Alan Smithee 選題:lkxed 譯者:Donkey 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國