คำถามติดแท็ก gcc-warning

21
ฉันจะปิดเสียงเตือนเกี่ยวกับตัวแปรที่ไม่ได้ใช้ได้อย่างไร
ฉันมีแอพพลิเคชั่นข้ามแพลตฟอร์มและในบางฟังก์ชั่นของฉันไม่ได้ใช้ค่าทั้งหมดที่ส่งไปยังฟังก์ชั่น ดังนั้นฉันจึงได้รับคำเตือนจาก GCC บอกฉันว่ามีตัวแปรที่ไม่ได้ใช้ อะไรจะเป็นวิธีที่ดีที่สุดในการเขียนโปรแกรมเตือน #ifdef รอบฟังก์ชั่นหรือไม่ #ifdef _MSC_VER void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, qreal qrTop, qreal qrWidth, qreal qrHeight) #else void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal /*qrLeft*/, qreal /*qrTop*/, qreal /*qrWidth*/, qreal /*qrHeight*/) #endif { มันน่าเกลียดมาก แต่ดูเหมือนว่าวิธีที่คอมไพเลอร์จะชอบ หรือฉันจะกำหนดศูนย์ให้กับตัวแปรที่ส่วนท้ายของฟังก์ชั่น? (ซึ่งฉันเกลียดเพราะมันเปลี่ยนแปลงบางสิ่งบางอย่างในโฟลว์ของโปรแกรมเพื่อปิดเสียงเตือนคอมไพเลอร์) มีวิธีที่ถูกต้องหรือไม่?
237 c++  gcc  warnings  gcc-warning 

11
วิธีการระงับคำเตือน“ พารามิเตอร์ที่ไม่ได้ใช้” ใน C?
ตัวอย่างเช่น Bool NullFunc(const struct timespec *when, const char *who) { return TRUE; } ใน C ++ ฉันสามารถใส่/*...*/ความคิดเห็นรอบพารามิเตอร์ แต่ไม่ได้อยู่ใน C error: parameter name omittedแน่นอนที่มันทำให้ฉันข้อผิดพลาด
210 c  gcc  gcc-warning 

2
การดำเนินงาน &&& ในค
#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; printf("%d\n", c); } return 0; } ผลลัพธ์ของโปรแกรมข้างต้นที่คอมไพล์ใช้gccคือ 0 1 1 ด้วย-Wallหรือ-Waddressตัวเลือกgccออกคำเตือน: warning: the address of ‘i’ will always evaluate as ‘true’ [-Waddress] การcประเมินในโปรแกรมข้างต้นเป็นอย่างไร

7
วิธีเปิดคำเตือนทั้งหมดของ GCC (ตามตัวอักษร)?
ผมอยากจะเปิดใช้งาน - ตัวอักษร - ทั้งหมดของคำเตือนที่มี GCC (คุณคิดว่ามันจะง่าย ... ) คุณคิดว่า -Wallอาจอาจทำกลอุบาย แต่ไม่! -Wextraยังคงต้อง คุณ-Wextraอาจคิดว่าอาจทำกลอุบาย แต่ไม่! ไม่ใช่คำเตือนทั้งหมดที่ระบุไว้ที่นี่ (ตัวอย่างเช่น-Wshadow) ไม่ได้เปิดใช้งานโดยสิ่งนี้ และฉันก็ยังไม่รู้ว่ารายการนี้ครอบคลุมหรือไม่ ฉันจะบอกให้ GCC เปิดใช้งานได้ (ไม่ว่าจะเป็นหรือไม่ก็เป็นได้ แต่อย่างเดียว) ทั้งหมดคำเตือนที่มีอยู่หรือไม่

4
คำเตือน: การประกาศโดยนัยที่เข้ากันไม่ได้ของฟังก์ชันในตัว 'xyz'
ฉันได้รับคำเตือนจำนวนหนึ่งเมื่อรวบรวมไบนารีสองสาม: warning: incompatible implicit declaration of built-in function ‘strcpy’ warning: incompatible implicit declaration of built-in function ‘strlen’ warning: incompatible implicit declaration of built-in function ‘exit’ เพื่อพยายามแก้ไขปัญหานี้ฉันได้เพิ่ม #include <stdlib.h> ที่ด้านบนของไฟล์ C ที่เกี่ยวข้องกับคำเตือนนี้นอกเหนือจากการรวบรวมด้วยแฟล็กต่อไปนี้: CFLAGS = -fno-builtin-exit -fno-builtin-strcat -fno-builtin-strncat -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-calloc ฉันใช้ GCC 4.1.2: $ gcc --version gcc (GCC) 4.1.2 20080704 ฉันควรทำอย่างไรเพื่อแก้ไขคำเตือนเหล่านี้
164 c  gcc  gcc-warning 

9
จะระงับคำเตือน GCC จากส่วนหัวของห้องสมุดได้อย่างไร
ฉันมีโปรเจ็กต์ที่ใช้ไลบรารี log4cxx, boost และอื่น ๆ ที่ส่วนหัวสร้างคำเตือน (ซ้ำ ๆ ) มากมาย มีวิธีระงับคำเตือนจากไลบรารี (เช่น #include <some-header.h>) หรือรวมจากบางเส้นทางหรือไม่ ฉันต้องการใช้ -Wall และ / หรือ -Wextra ตามปกติในรหัสโครงการโดยไม่ปิดบังข้อมูลที่เกี่ยวข้อง ปัจจุบันฉันใช้ grep ในการสร้างผลลัพธ์ แต่ฉันต้องการสิ่งที่ดีกว่า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.