في الأدوات التلقائية، ما هو dnl'ed؟
سؤال
أرى الكثير في كود autoconf حول الأشياء التي يتم حذفها وعدم حذفها.ما هو dnl'ed؟
المحلول
من معالج ماكرو جنو M4 1.4.13 يدوي:
8.1 حذف المسافة البيضاء في الإدخال
المدمج
dnl
يرمز إلى "تجاهل إلى السطر التالي":- مدمج: dnl
يتم تجاهل كافة الأحرف، حتى السطر الجديد التالي، دون إجراء أي توسيع للماكرو.يتم إصدار تحذير في حالة مواجهة نهاية الملف بدون سطر جديد.
التوسع في
dnl
هو الفراغ.غالبا ما يتم استخدامه فيما يتعلق
define
, ، لإزالة السطر الجديد الذي يتبع المكالمة إلىdefine
.هكذاdefine(`foo', `Macro `foo'.')dnl A very simple macro, indeed. foo ⇒Macro foo.
يتم تجاهل الإدخال حتى السطر الجديد التالي ويتضمنه، على عكس الطريقة التي يتم بها التعامل مع التعليقات (انظر تعليقات).
[...]
نصائح أخرى
وIIRC، dnl
عبارة do-next-line
. ببساطة يتخطى ما تبقى من السطر الحالي. بل كيف تكتب تعليقات في ملفات M4.
dnl preprocessor will eat this
but not this dnl though this
وسوف تسفر هذه الوثيقة نتيجة
but not this
و(غير مجربة، قد قتل أيضا عملية خمول أو تحطم القرص الصلب الخاص بك).