• 0
مصطفى 36a2

هل درست ++C من الـ manual ؟ لا ! إذاً استعد للكوابيس

سؤال

هناك شخصان فقط في المنتدى يمكنهما فهم السبب , أحد أكثر الأمور إرباكاً في اللغة, شيء لا يمكنك تخيله , من الفضاء أو من عالم آخر .

لو كان الكود طويلاً لتردد البعض في قراءته , ولكن ماذا عن

cout<<"??!";

أو في الـ C

puts("??!");

هل تتوقع أنك ستحصل على أسوأ كابوس لليوم ؟ اكتب توقعك ثم جرب الكود :)

 

بالتوفيق

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

هذه تسمى trigraph sequences وهي، الرمز ومايقابله:

??=      #??(      [??/      \??)      ]??'      ^??<      {??!      |??>      }??-      ~???      ?

مدعومة من c89 وقبل، سبب وجودها أن بعض لوحات المفاتيح القديمة كانت تفتقر لبعض تلك الرموز لذا يستعاض بهذه الرموز بدلها.

 

gcc يتجاهلها افتراضياً مع تحذير، يلزم استخدام الخيار trigraphs لتفعيلها، msvc لايعطي أي تحذير بخصوصها، وهذه مشكلة لأنها أحياناً قد تسبب أخطاء يصعب اكتشافها.

 

هناك أيضاً الـdigraph مثل:

%:include <stdio.h>int main(int argc, char **argv) <%  printf("Hello! %s\n", argv<:0:>);  return 0;%>

معانيها:

<%       {%>       }<:       [:>       ]%:       #

هذه الأخيرة جزء من c99 و c++، ليست جزء من c89 (لايدعمها msvc).

 

للمزيد: وحدات اللغة C++ : المعاملات و الرموز preprocessing-op-or-punc

تم تعديل بواسطه Mr.B
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ما شاء الله عليك , أنت أحد الشخصين الموجودين هنا الذين يمكنهما الإجابة :)

الشخص الآخر هو C++er .

 

وفقك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اقترح تاني مرة يكتب فيها "مستر بي" الجواب ان يضعه مع تحذير spoiler حتى مايخربش

علينا الاستمتاع بالتفكير :P

بالنسبة لي قبل قراءة جواب مستر بي كان رايي كالتالي:

١- ان الاثنين سيطبعون نفس الشيء.

٢- لكن بما انه وضع كلغز هنا، حينها كنت متوقع ان هناك فورماتينجز معينة، لكن

الترايجرافز لم تكن ببالي.

سؤال: يبدو ان اختيار ال -trigraphs لا يعمل مع clang++ لكنه يعمل مع g++. هل

يعرف احد ايه المشكلة مع clang++؟

وشكرا على الالغاز المسلية مصطفى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أهلاً بك جونكر

هل يمكنك التأكد إذا كان هناك تعليمات للمترجم مثل Wtrigraphs- للـ gcc فهي لا تعمل بدونها , ربما يكون نفس الشيء عندك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم جربتها لكن مترجم clang++ لا يزال لا يعمل ويطبع نفس رسالة التحذير.

 

ربما بق في clang++ ولم يتم اكتشافه لان الترايجرافز مهجورة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 

هل درست ++C من الـ manual ؟

 

مالذي تعنيه بدراسة ال c++ من ال manual

 

إذا كنت تقصد تعلم اللغة من المصدر الخاص بها (من موقع اللغة أو ما شابه)

 

فأرجو أن تدلني عليه من فضلك لأن هذا ما أبحث عنه

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .