أسلوبي الشخصي في ترميز لغة C اعتبارًا من أواخر عام 2023

اكتوبر 08, 2023

nullprogram.com/blog/2023/10/08/

<ص> هذا الى كان أ ثوري سنة ل لي ضد مهارات، و منظومة التغييرات في لي اِصطِلاحِيّ الى استفزاز أنا الى إعادة النظر لي عادات و الترميز أسلوب. إنها كان لي الاكبر طاقم عمل أسلوب يتغير في سنين، لذا لدي مقرر الى يأخذ أ فوري ل إنها الحالية حالة و لي منطق. هؤلاء التغييرات يمتلك منتج بارِز إنتاجي و التنظيمية فوائد، لذا في حين أن معظم شرق بالتأكيد شخصي، هو محتمل يفهم أ قليل موضوعي تحسينات. أنا أكون لا قائلا الجميع يجب يكتب ضد هذا طريق، و متى أنا يساهم مشفرة الى أ مشروع أنا يتبع هُم محلي أسلوب. هذا شرق عن ماذا أعمال حسن ل انا.

بدائية الأنواع <ص> رحيل مع ال أساسي، لدي كان باستعمال قصير أسماء ل بدائية الأنواع. ال الناتج وضوح كان أكثر ان أنا ملك مُتوقع، و إنها يفعل لي مشفرة أكثر جَذّاب الى مع السلامة. هؤلاء أسماء يظهر مرارًا على طول أ برنامج، لذا الإيجاز يدفع. أيضا، الآن ان لدي اختفى بدون، _t اللواحق نكون أكثر بصريا تشتيت الانتباه ان أنا ملك تم تحقيقه.

typedef uint8_t u8; typedef char16_t c16; typedef int32_t b32; typedef int32_t i32; typedef uint32_t u32; typedef uint64_t u64; typedef تعويم f32؛ typedef مزدوج f64؛ typedef uintptr_t uptr; حرف بايت typedef؛ حجم typedef ptrdiff_t؛ typedef size_t استخدم الحجم؛ <ص> قليلة الناس تفضل أ س بادئة ل لافتة الأنواع. أنا تفضل أنا، أكثر مثل تذهب يرى، أنا يمتلك آخر الرسومات ل س. ل الأحجام, مقاس سيكون يكون أكثر ثابت، و أليس كذلك؟ لحم خنزير ال معرف, لكن لافتة الأحجام نكون ال طريق و لذا أنا لأريد هم في أ مكان ل امتياز. ليستخدم شرق المكانة، خاصة ل يتفاعل مع خارجي واجهات أو هو استطاع يهم.

<ص> ب32 شرق أ « 32 بت منطقي" و أبلغت نيّة. أنا استطاع ليستخدم _بول، لكن المعرف بدلاً من يلزق الى أ طبيعي كلمة مقاس و يقضي بعيد منذ إنها غريب دلالات. الى مبتدئين هو استطاع تبدو مثل "يضيع ذاكرة" بواسطة باستعمال أ 32 بت منطقية, لكن في عملي إنها أبدا ال قضية. إنها أيضاً في أ يسجل (خلف قيمة، محلي عامل) أو سيكون يكون مبطن على أي حال (بناء مجال). متى هو في الواقع مستورد، أنا صفقة منطقية في أ أعلام عامل، و أ 1 بايت منطقية نادرًا مهم.

<ص> في حين أن UTF-16 استطاع تبدو المكانة، إنها أ ضروري خطأ متى عملية مع وين32، لذا ج16 ("16 بت شخصية") الى يفعل أ متكرر مظهر. أنا استطاع يمتلك قاعدة هو على uint16_t, لكن نضع ال اسم char16_t في إنها "يكتب التسلسل الهرمي" أبلغت الى مصححات الأخطاء, خصوصًا جي دي بي، ان ل عرض المقاصد هؤلاء المتغيرات قابس كهرباء شخصية بيانات. رسمياً Win32 الاستخدامات أ يكتب معين wchar_t, لكن أنا مثل يكون صريحة عن UTF-16.

<ص> u8 شرق ل بايت, عمومًا ترميز UTF-8 بيانات. إنها متميز منذ بايت, أيّ ممثلة خام ذاكرة و شرق أ خاص <م> الاسم المستعار يكتب. في نظرية هؤلاء يمكن يكون متميز الأنواع مع مختلف دلالات، لكن أنا أكون لا واعي ل أي كان تطبيق ان يفعل لذا (مرة أخرى؟). ل الآن إنها عن نية.

<ص> ماذا عن أنظمة ان لا تفعل ذلك يدعم مُثَبَّت عرض الأنواع؟ إنها أكاديمي, و بعيد أيضا كثيراً وقت الى كان يضيع مقلق عن هو. ان يفهم وقت يضيع على الكتابة خارج int_fast32_t و مشابه سخافة. افتراضيًا لا موجود برمجة سيكون في الواقع عمل بشكل صحيح على هذه أنظمة — أنا أكون تأكيد لا أحد <م> الاختبارات هو بعد الجميع — لذا هو يبدو شخص آخر تشعر بالقلق ولا.

<ص> أنا لا تفعل ذلك ينوي الى ليستخدم هؤلاء أسماء في عزل، هذه مثل في مشفرة مقتطفات (خارج ل هذا شرط). لو أنا فعل، أمثلة سيكون يتطلب ال typedefs الى يعطي القراء ال مكتمل سياق. إنها لا قيمة إضافي توضيح. حتى في ال معظم مؤخرًا مقالات لدي مستخدم ptrdiff_t بدلاً من ل الحجم.

دقيق <ص> التالي، لي "معيار" معاً ل ماكرو:

اكتوبر 08, 2023

nullprogram.com/blog/2023/10/08/

<ص> هذا الى كان أ ثوري سنة ل لي ضد مهارات، و منظومة التغييرات في لي اِصطِلاحِيّ الى استفزاز أنا الى إعادة النظر لي عادات و الترميز أسلوب. إنها كان لي الاكبر طاقم عمل أسلوب يتغير في سنين، لذا لدي مقرر الى يأخذ أ فوري ل إنها الحالية حالة و لي منطق. هؤلاء التغييرات يمتلك منتج بارِز إنتاجي و التنظيمية فوائد، لذا في حين أن معظم شرق بالتأكيد شخصي، هو محتمل يفهم أ قليل موضوعي تحسينات. أنا أكون لا قائلا الجميع يجب يكتب ضد هذا طريق، و متى أنا يساهم مشفرة الى أ مشروع أنا يتبع هُم محلي أسلوب. هذا شرق عن ماذا أعمال حسن ل انا.

بدائية الأنواع <ص> رحيل مع ال أساسي، لدي كان باستعمال قصير أسماء ل بدائية الأنواع. ال الناتج وضوح كان أكثر ان أنا ملك مُتوقع، و إنها يفعل لي مشفرة أكثر جَذّاب الى مع السلامة. هؤلاء أسماء يظهر مرارًا على طول أ برنامج، لذا الإيجاز يدفع. أيضا، الآن ان لدي اختفى بدون، _t اللواحق نكون أكثر بصريا تشتيت الانتباه ان أنا ملك تم تحقيقه.

typedef uint8_t u8; typedef char16_t c16; typedef int32_t b32; typedef int32_t i32; typedef uint32_t u32; typedef uint64_t u64; typedef تعويم f32؛ typedef مزدوج f64؛ typedef uintptr_t uptr; حرف بايت typedef؛ حجم typedef ptrdiff_t؛ typedef size_t استخدم الحجم؛ <ص> قليلة الناس تفضل أ س بادئة ل لافتة الأنواع. أنا تفضل أنا، أكثر مثل تذهب يرى، أنا يمتلك آخر الرسومات ل س. ل الأحجام, مقاس سيكون يكون أكثر ثابت، و أليس كذلك؟ لحم خنزير ال معرف, لكن لافتة الأحجام نكون ال طريق و لذا أنا لأريد هم في أ مكان ل امتياز. ليستخدم شرق المكانة، خاصة ل يتفاعل مع خارجي واجهات أو هو استطاع يهم.

<ص> ب32 شرق أ « 32 بت منطقي" و أبلغت نيّة. أنا استطاع ليستخدم _بول، لكن المعرف بدلاً من يلزق الى أ طبيعي كلمة مقاس و يقضي بعيد منذ إنها غريب دلالات. الى مبتدئين هو استطاع تبدو مثل "يضيع ذاكرة" بواسطة باستعمال أ 32 بت منطقية, لكن في عملي إنها أبدا ال قضية. إنها أيضاً في أ يسجل (خلف قيمة، محلي عامل) أو سيكون يكون مبطن على أي حال (بناء مجال). متى هو في الواقع مستورد، أنا صفقة منطقية في أ أعلام عامل، و أ 1 بايت منطقية نادرًا مهم.

<ص> في حين أن UTF-16 استطاع تبدو المكانة، إنها أ ضروري خطأ متى عملية مع وين32، لذا ج16 ("16 بت شخصية") الى يفعل أ متكرر مظهر. أنا استطاع يمتلك قاعدة هو على uint16_t, لكن نضع ال اسم char16_t في إنها "يكتب التسلسل الهرمي" أبلغت الى مصححات الأخطاء, خصوصًا جي دي بي، ان ل عرض المقاصد هؤلاء المتغيرات قابس كهرباء شخصية بيانات. رسمياً Win32 الاستخدامات أ يكتب معين wchar_t, لكن أنا مثل يكون صريحة عن UTF-16.

<ص> u8 شرق ل بايت, عمومًا ترميز UTF-8 بيانات. إنها متميز منذ بايت, أيّ ممثلة خام ذاكرة و شرق أ خاص <م> الاسم المستعار يكتب. في نظرية هؤلاء يمكن يكون متميز الأنواع مع مختلف دلالات، لكن أنا أكون لا واعي ل أي كان تطبيق ان يفعل لذا (مرة أخرى؟). ل الآن إنها عن نية.

<ص> ماذا عن أنظمة ان لا تفعل ذلك يدعم مُثَبَّت عرض الأنواع؟ إنها أكاديمي, و بعيد أيضا كثيراً وقت الى كان يضيع مقلق عن هو. ان يفهم وقت يضيع على الكتابة خارج int_fast32_t و مشابه سخافة. افتراضيًا لا موجود برمجة سيكون في الواقع عمل بشكل صحيح على هذه أنظمة — أنا أكون تأكيد لا أحد <م> الاختبارات هو بعد الجميع — لذا هو يبدو شخص آخر تشعر بالقلق ولا.

<ص> أنا لا تفعل ذلك ينوي الى ليستخدم هؤلاء أسماء في عزل، هذه مثل في مشفرة مقتطفات (خارج ل هذا شرط). لو أنا فعل، أمثلة سيكون يتطلب ال typedefs الى يعطي القراء ال مكتمل سياق. إنها لا قيمة إضافي توضيح. حتى في ال معظم مؤخرًا مقالات لدي مستخدم ptrdiff_t بدلاً من ل الحجم.

دقيق <ص> التالي، لي "معيار" معاً ل ماكرو:

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow