Re: [討論] 前輩們變數都怎麼命名?
程式命名規則 與 Makefile
1. 查閱了 ISO 1999 C99, ISO 2011 C++, ISO 2014 C++, ISO 2020 C++,
https://reurl.cc/gZGz6L
https://reurl.cc/XLGlq0
ISO都有基本的命名規則
另查閱 微軟 安卓 程式規範
微軟 的 命名規則偏向 The Hungarian Naming Convention
由2001 制定完整規範, prefix 如ch, sz, p
https://idleloop.com/hungarian/
2. variable prefix naming convention 一定是正確的嗎?
(a)
北美電網程式規範與openPDC 首席設計師 James Ritchie Carroll
https://www.gridprotectionalliance.org/docs/GPA_Coding_Guidelines_2011_03.pdf
Page 12 原文貼上
Do not use Hungarian notation
Do not abbreviate
Do not prefix enums, classes, or delegates with any letter
(b)
Linux核心的創始者 開源專案Git創始者 Linus Torvalds
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
https://slurm.schedmd.com/coding_style.pdf
第四章 原文貼上
Encoding the type of a function into the name (so-called Hungarian notation)
is brain damaged - the compiler knows the types anyway and can check those,
and it only confuses the programmer. No wonder MicroSoft makes buggy programs.
(注意一下這兩位大神coding在意的重點是什麼)
3.
GNU MAKE
https://www.gnu.org/software/make/manual/make.html
#dir named with www.gnu.org/software/make/manual/make.html 4.3 16.3 16.5
SRCDIR = ./source
OBJDIR = ./obj
BINDIR = ./bin
#compile optione with www.gnu.org/software/make/manual/make.html 4.3 16.3 16.5
$(OBJDIR)/%.o : ./$(SRCDIR)/%.cpp
$(CXX) -c $(CXXFLAGS) $< -o $@
#link
$(TARGET): $(OBJFILES)
$(CXX) $^ $(LDFLAGS) -o $(BINDIR)/$@
有人習慣使用
$(CXX) $(LDFLAGS) $^ -o $(BINDIR)/$@
$^ 代表著許多 .o 檔
$(LDFLAGS)若放在 $^ 前面
ubuntu 16/18 x86_64 g++ link -lpthread 會找不到
所以 "$(LDFLAGS) 一定要放在 $^ 之後"
#Note: CPPFLAGS at www.gnu.org/software/make/manual/make.html 10.3
CC
Program for compiling C programs; default ‘cc’.
CXX
Program for compiling C++ programs; default ‘g++’.
CPPFLAGS
Extra flags to give to the C preprocessor and programs that use it (the
C and Fortran compilers).
CXXFLAGS
Extra flags to give to the C++ compiler.
※ 引述《heaviest (heaviest)》之銘言:
: 最近開始學C,剛剛把前幾天寫的程式,打開來看
: 發現變數一時之間完全搞不清楚
: 明明當初有盡力的取有意義的名稱,然後照著大寫來分開字這樣打
: 跑去問了學長,他叫我去背單字,他說變數名字取不出來是我單字被太少QQ
: 請問各位前輩們都怎麼取有意義的名字
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.93.159 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1678947635.A.C5A.html
※ 編輯: fatalfeel2 (218.187.80.32 臺灣), 03/19/2023 06:25:08
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章