iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0

我的背景與主題簡介

小妹本是生醫背景出身,記憶以來的在學期間,我的生活圍繞在細菌細胞株、藥物測試與數據分析,對於程式語言幾乎完全陌生。當時我最多只是在統計軟體裡寫過一些簡單的公式或者在看駭客軍團被主角們精湛的技術與技巧所震懾,從來沒有想過自己會有一天要去寫程式碼。

畢業後我因緣際會擔任產線有關的品管人員,起初接觸的是硬體與感測器相關測試,對當時的我來說,程式碼是一個可以幫我接住產線龐大壓力的殺手鐧,而我使用的程度大概就停留在「工人智慧」的程度,很多事情還是用excel或是高度手動化的笨拙技巧,但隨著時間推進,我慢慢意識到如果想真正理解裝置的核心價值,就不能只停留在硬體面,因為它的演算法與軟體設計才是決定硬體使用流暢度,甚至是使用者體驗的關鍵,因此毅然決然決定轉換職業道路進去了硬體相關的軟體業,就在這個轉折點上,我也下定決心開始學習這個「硬硬的軟體」,然而最先遇到的,就是讓許多人望而卻步的 C 語言

C 語言雖然歷史悠久,但卻是許多嵌入式系統與穿戴式裝置的基石。它不像 Python 那種直譯型語言可以現學現賣,反而需要我去理解程式是如何被編譯、如何與電腦底層的記憶體與硬體互動,甚至要考慮到記憶體相關的問題。C 的世界有點像回到實驗室裡,很多東西一開始都是無法掌握,一定需要先一步一步理解原理,再慢慢搭建起自己的實驗流程,這邊就是所謂的學習歷程,我認為我是一個不太聰明的人,我也確信每個人都有屬於自己獨有的學習歷程,以下開始會針對C語言的發展史演進,慢慢揭開C語言的神秘面紗。

從最基本的「程式架構」開始學起,C 語言的核心架構其實很簡單:

#include <stdio.h>
int main(void) {
	printf("Hello, World!\n");
	return 0; 
}

這短短幾行程式,幾乎濃縮了 C 的骨幹:#include 負責引入標準函式庫,main() 是程式的進入點,而 printf 則讓我第一次看到自己寫的程式在終端機上輸出。這種成就感,其實就如同當初在實驗室裡看到實驗數據跑出結果時的心情。
接著進入C 語言主要分為語言層(Language)、編譯/連結層(Build Model)到標準函式庫層(libc),三個結構都是C語言實作必經學習歷程,接下來的主題主要會集中在以下兩個流程。
「如何讓他跑起來」
「跑起來如何除錯」

使用平台

以下是這次的主題中,主要會用到的2個工具

  • WSL
  • VScode

下一篇
[Day 02] 工欲善其事,必先利其器 - 安裝 VSCode + WSL
系列文
30 天精通 C 語言建置與除錯:從 Makefile 到 CMake 跨平台實戰3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言