क्या आप जानते हैं कि मैं स्प्लिंट को कैसे अनदेखा कर सकता हूं जहां मैं अपने चर घोषित करता हूं?मैं स्प्लिंट को अनदेखा कैसे कर सकता हूं जहां मैं अपने चर घोषित करता हूं?
मैं जानता हूँ कि पुराने स्कूल ग बताता है कि आप हर कार्य, में शुरुआत सही पर चर घोषित करने के लिए लेकिन जब से मैं एक बुरा व्यक्ति हूँ मैं जहाँ मैं उन्हें इस्तेमाल के करीब बातें घोषित करने के लिए पसंद करते हैं। एक अच्छा उदाहरण है int int रखना; ठीक से पहले (i = 0; ...)।
के एक बहुत ही सरल उदाहरण
#include <stdio.h>
int main()
{
printf("Hello splint test\n");
int i;
for(i=5;i>0;i--)
{
printf("%2d...\n",i);
}
return 0;
}
यहाँ पट्टी और सबसे पुराने ग compilers मैं पूर्णांक स्थानांतरित करना चाहते हैं लेते हैं; एक लाइन, या {} घोषणा के लिए और लूप के लिए {} डालने के लिए।
और अब सवाल का, मैं कैसे इस चेक को बंद कर देते हैं? लेकिन अन्य चेक जो अच्छा है?
धन्यवाद जोहान
नोट 1: मैं पहले से ही रक्षा, और दूसरी के रूप में valgrind बंद एक पहली पंक्ति के रूप जीसीसी चेतावनी (देखें नीचे) का उपयोग करें। लेकिन मैं चीजें हैं जो अपनी मूर्खता ;-) को नियंत्रित कर सकता है की मेरी सूची में पट्टी को जोड़ने के बारे में सोच रहा हूँ लेकिन इस चेक सिर्फ कष्टप्रद है,
जीसीसी चेतावनी मैं का उपयोग करें: -Wall डब्ल्यू -Wextra -Wconversion - Wshadow-Wcast-qual -Wwrite-strings -Werror
नोट 2: मुझे उस संभावित व्यवहार से होने वाली संभावित पोर्टेबिलिटी समस्याओं के बारे में पता है। लेकिन मुझे लगता है कि यह पठनीयता को बढ़ाता है, उर्फ को इस प्रकार की घोषणाओं को खोजने के लिए ऊपर और नीचे कूदने की आवश्यकता नहीं है और यह अधिक मूल्यवान है (और यह हम किसी अन्य धागे में चर्चा कर सकते हैं)।
अद्यतन: एक छोटी सी में अधिक जानकारी है, मैं एक फ़ाइल बुलाया main.c. में उपरोक्त कोड डाल इस्तेमाल किया मंच Ubuntu 8.04 और संपादक, रूप जाँचने और जब मैं इसे चलाने के लिए इस पट्टी से उत्पादन होता है:
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.)
और यह 2 अधिक सवाल है कि मैं के बारे में पहले नहीं सोचा था को खोलता है।
"वर्तमान मूल्य के साथ अनावश्यक", वर्तमान मूल्य क्या है?
यह एक पार्स त्रुटि क्यों है और चेतावनी नहीं है?
अद्यतन:: पैच पट्टी के लिए एक posibility इस समस्या को समर्थन करने के लिए नहीं है, मैं अभी तक इस प्रयास नहीं किया है लेकिन लेकिन मुझे लगता है कि समाधान है कि।
जबकि आप इसमें हैं, आपको विवरण के लिए int घोषित करना चाहिए। – starblue
आप एक कष्टप्रद चेतावनी, या एक पार्सर त्रुटि हो रही है? –
और यह "int" और "i" के बीच की जगह है जो स्प्लिंट तोड़ती है? – Johan