ก่อนอื่นมาตกลงกันว่าค่าทั้งหมดที่เพิ่มขึ้นเป็นสิ่งที่มีนัยน์ตาและควรถูกย่อให้เล็กสุด
ใน C และ C ++ มันถูกใช้เป็นข้อตกลงสำหรับมาโครและมาโครเท่านั้นเนื่องจากมาโครนั้นดูน่าเกลียดไม่แพ้กัน
Early C ไม่มีค่าคงที่ดังนั้นค่าคงที่จึงต้องแสดงเป็นมาโคร ยิ่งไปกว่านั้นในวันแรก ๆ ของโปรแกรมนั้นสั้นกว่ามากเพื่อให้การปฏิบัติที่ไม่ดีในวันนี้สามารถนำมาใช้ได้ (เช่น IIRC Brian Kernighan เขียนโค้ดที่มีมาโครที่ไม่ใช่ตัวพิมพ์ใหญ่จำนวนมาก) และในสมัยนั้นคีย์บอร์ดที่ไม่มีตัวอักษรพิมพ์เล็กก็มีอยู่ ฉันใช้คอมพิวเตอร์ดังกล่าวบนคอมพิวเตอร์ Tandberg EC-10 ของนอร์เวย์ประมาณปี 1980 หรือ 1979 ฉันคิดว่ามันเป็น
ดังนั้น Java จึงเลือกใช้ตัวพิมพ์ใหญ่สำหรับค่าคงที่จากต้น C. ในขณะเดียวกันและอาจจะก่อนหน้านั้น (ฉันไม่แน่ใจเกี่ยวกับเหตุการณ์ที่นี่) C ได้ค่าคงที่ อย่างไรก็ตามในขณะที่ผู้เขียนโปรแกรม C / จำนวนมากติดอยู่ในการประชุมก่อนหน้านี้โดยความจำเป็นของค่าคงที่ในฐานะตัวพิมพ์ใหญ่มาโครโปรแกรมเมอร์ C ++ นั้นมีเหตุผลมากกว่า
ปัญหาใหญ่ในปัจจุบันคือเมื่อคนถูกสอน Java ก่อนหรือ C (มีอนุสัญญาจากยุคกลาง) เป็นอันดับแรกจากนั้นมาที่ C ++ โดยเข้าร่วมการประชุมตัวพิมพ์ใหญ่ที่ไม่เหมาะสมกับพวกเขา
ดังนั้น,
int const answer = 42; // Nice, good, OK.
const int ANSWER = 0x2A; // Ouch!
#define COMPANYNAME_ANSWER 052 // Oh kill me, please.
คุณอาจคิดว่าฉันพูดถึงคีย์บอร์ดตัวพิมพ์ใหญ่เท่านั้นอย่างตลก ๆ ไม่นะ. เพราะนั่นเป็นเพียงข้อ จำกัด ด้านเทคโนโลยีที่เก่าแก่และเก่าแก่ที่สุดที่ผลักดันให้มีการตั้งชื่อการประชุมหรืออย่างน้อยก็ส่งผลต่อความผิด / ขวาของพวกเขา ถัดไปมีปัญหาการส่งต่อเนื่องแบบ 7 บิตซึ่งทำให้เกิดปัญหาที่เกี่ยวข้องกับรหัสอักขระ (การเข้ารหัสตัวอักษรของ newspeak) ซึ่งหมายความว่าคุณต้อง จำกัด ตัวคุณให้เป็นตัวอักษรภาษาอังกฤษ A ถึง Z
ที่จริงฉันขอแนะนำให้ทำต่อไป นั่นคือสิ่งที่เรากำลัง! เรายังไม่ได้รับเพิ่มเติม
ในขณะนี้ในปี 2011 C ++ มาตรฐานรองรับ Unicode ทั่วไปในชื่อ (และได้ทำมาตั้งแต่ปี 1998) ในขณะที่การใช้งาน C ++ ที่เกิดขึ้นจริงไม่ได้ โดยเฉพาะคอมไพเลอร์ g ++ เป็นตัวละครประจำชาติที่ถูกท้าทาย มันเกิดจากข้อ จำกัด ทางเทคโนโลยียุคมืด
ดังนั้น,
double blueberryJamViscosity = 0.0; // OK
double blåbærsyltetøyViskositet = 0.0; // Ouch!
ในที่สุดในเรื่องของการขีดเส้นใต้กับตัวอักษรตัวพิมพ์ใหญ่สลับกัน
- สำรองแบบฟอร์มที่จดจำได้ง่ายสำหรับชื่อประเภท
- จองทั้งหมดที่เพิ่มขึ้นสำหรับมาโคร
- คงเส้นคงวา.
ฉันคิดว่าเป็นเช่นนั้นจริงๆยกเว้นกฎอย่าง "โดยทั่วไปหลีกเลี่ยงชื่อตัวอักษรเดียวยกเว้น (ห่วง, เทมเพลต param, blah blah)" และ "หลีกเลี่ยงการใช้ l, สับสนได้ง่ายกับ 1" และ "หลีกเลี่ยงตัวพิมพ์ใหญ่ O, สับสนได้ง่าย กับ 0 " และแน่นอนว่าหลีกเลี่ยงการใช้ชื่อที่สงวนไว้เช่นเริ่มต้นด้วยเครื่องหมายขีดล่างตามด้วยตัวพิมพ์ใหญ่มีขีดล่างสองอันต่อเนื่องกันหรือเริ่มต้นด้วยเครื่องหมายขีดล่างและอยู่ในเนมสเปซส่วนกลาง
ไชโย