Bạn có biết làm thế nào tôi có thể làm cho nẹp bỏ qua nơi tôi khai báo các biến của tôi?Làm thế nào tôi có thể làm cho nẹp bỏ qua nơi tôi khai báo các biến của tôi?
Tôi biết rằng trường cũ c yêu cầu bạn khai báo các biến ngay tại bắt đầu trong mọi hàm, nhưng vì tôi là người xấu, tôi muốn khai báo những thứ gần nơi tôi sử dụng chúng. Một ví dụ tốt là đặt int i; ngay trước khi cho (i = 0; ...).
Hãy lấy một ví dụ rất đơn giản
#include <stdio.h>
int main()
{
printf("Hello splint test\n");
int i;
for(i=5;i>0;i--)
{
printf("%2d...\n",i);
}
return 0;
}
đây nẹp và trình biên dịch c cũ nhất muốn di chuyển int i; lên một dòng, hoặc đặt {} làm tròn tờ khai và vòng lặp for.
Và bây giờ cho câu hỏi, làm cách nào để tắt kiểm tra này? Nhưng giữ các kiểm tra khác tốt?
Cảm ơn Johan
Lưu ý 1: Tôi đã sử dụng cảnh báo gcc (xem bên dưới) như là một dòng đầu tiên ra khỏi phòng, và valgrind là thứ hai. Nhưng tôi đang nghĩ về việc thêm nẹp vào danh sách của tôi về những điều mà có thể kiểm soát sự ngu dốt của tôi ;-) Nhưng việc kiểm tra này chỉ là gây phiền nhiễu,
Những cảnh báo gcc tôi sử dụng: Wall -W -Wextra -Wconversion - Wshadow -Wcast-qual -Wwrite-strings -Werror
Lưu ý 2: Tôi biết về các vấn đề về khả năng di động có thể đến từ hành vi xấu đó. Nhưng tôi cảm thấy rằng nó làm tăng khả năng đọc, còn không cần phải nhảy lên và xuống để tìm kiếm loại khai báo này có giá trị hơn (và điều này chúng ta có thể thảo luận trong một chủ đề khác).
Cập nhật: Một chút biết thêm thông tin, tôi đặt mã trên trong một tập tin gọi là main.c. vBulletin sử dụng là Ubuntu 8.04 và gvim như biên tập viên, và điều này là kết quả từ nẹp khi tôi chạy nó:
splint +gnuextensions main.c
Splint 3.1.1 --- 03 Nov 2006
Command Line: Setting +gnuextensions redundant with current value
main.c:8:8: Parse Error. (For help on parse errors, see splint -help
parseerrors.)
Và điều này mở ra thêm 2 câu hỏi mà tôi đã không nghĩ về trước.
"dư thừa với giá trị hiện tại", giá trị hiện tại là gì?
Tại sao lỗi phân tích cú pháp và không phải là cảnh báo?
Cập nhật:: Có một posibility để nẹp vá để hỗ trợ vấn đề này, Tôi đã không cố gắng này nhưng chưa nhưng tôi nghĩ rằng nó là giải pháp.
Trong khi bạn ở đó, bạn nên khai báo int bên trong câu lệnh. – starblue
Bạn có nhận được cảnh báo gây phiền nhiễu hoặc lỗi phân tích cú pháp không? –
và đó là khoảng cách giữa "int" và "i" phá vỡ nẹp? – Johan