İlk defa clang ile oluşturduğum bazı (eski) kodlarım var.Clang ile trigraphların devre dışı bırakılması için bir anahtar var mı?
sprintf(buf, "%s <%s ????>", p1, p2);
Clang aşağıdaki uyarısı (-Werror
ile hata) veren: Kod gibi bir şey olduğunu Açıkça ??>
bir TriGraph ™ mod seçimini olarak tasarlanmamıştır
test.c:6:33: error: trigraph converted to '}' character [-Werror,-Wtrigraphs]
sprintf(buf, "%s <%s ????>", p1, p2);
^
, bu yüzden (tamamen üç karakterli devre dışı bırakmak istediğiniz Kaynak bilerek onları herhangi bir yerde kullanmaz.
Ben -no-trigraphs
denedi ama bu gerçekten bir seçenek değil:
clang: warning: argument unused during compilation: '-no-trigraphs'
Ben -Wno-trigraphs
ile uyarı üç karakterli kapatabilirsiniz ama sesli üç harf dönüşüm aslında hiç gerçekleşecek istemiyoruz.
NOT: Trigraflar, -std=c89
kullanımının istenmeyen bir yan etkisi olarak etkinleştirildi.
Ouch! GCC, '-trigraphs' ile ellerini ateşe vermedikçe, sıkı uyum modunda bile trigrafları görmezden gelerek mantıklı bir politikaya sahiptir. Çölden kaçma zamanı? Ya da eşdeğer. –
Aslında GCC'nin sıkı uyumluluk modları ('-std = c89',' -std = c99' vb) trigraph dönüşümünü açar. – zwol
Ve eğer birisi WTH'nin bir trigraf olduğunu merak ediyorsa. [İşte midilli] (http://stackoverflow.com/questions/7825055/what-does-the-c-operator-do) ... – Mysticial