كشف التعبيرات الثابتة في لغة سي: نهج قائم على وحدات الماكرو

2025-05-13

يستكشف هذا المقال طرقًا مختلفة لإنشاء وحدة ماكرو في لغة سي للتحقق مما إذا كانت عبارة ما ثابتة وقت التجميع. يبحث الكاتب في أساليب استخدام `constexpr` و `typeof` من سي 23، وامتدادات جنو مثل `__builtin_constant_p`، و`static_assert` من سي 11، وحيل ذكية مع `sizeof` والمتواليات المركبة. لكل طريقة نقاط قوتها وضعفها؛ فبعضها يتطلب معايير سي أحدث، ويعتمد على امتدادات المُجمع، أو قد يُغيّر نوع العبارة أو يُنشئ تحذيرات. يُلخص المقال إيجابيات وسلبيات كل طريقة، ويعرب عن رغبته في حلول أنيقة أكثر.