rublesaha
Πρωτότυπη αφίσα- 22 Δεκεμβρίου 2008
- 8 Ιανουαρίου 2009
Χρησιμοποιώ αυτό το απόσπασμα κώδικα
void * handle_;
if (handle_ =dlopen('/System/Library/Frameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('............');
}
αλλιώς εάν (handle_ =dlopen('/System/Library/PrivateFrameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('.................');
}
Λαμβάνω όμως την προειδοποίηση:
'πρότεινε παρενθέσεις γύρω από την ανάθεση που χρησιμοποιείται ως τιμή αλήθειας' για την πρώτη γραμμή i, π.χ. για τον βρόχο 'για'....μπορεί κάποιος να με βοηθήσει να απαλλαγώ από αυτήν την προειδοποίηση.. ΠΡΟΣ ΤΟ
kpua
- 25 Ιουλίου 2006
- 8 Ιανουαρίου 2009
Ωστόσο, μερικές φορές είναι ο απλούστερος τρόπος για να κωδικοποιήσετε αυτό που εννοείτε (αν και δεν νομίζω ότι είναι απαραίτητα στο παράδειγμά σας). Όταν έχετε μια ανάθεση σε μια δήλωση if, το GCC αναμένει γενικά κάτι σαν αυτό:
Κωδικός: |_+_|
Παρατηρήστε τις επιπλέον παρενθέσεις γύρω από την εργασία. Το GCC προτείνει να χρησιμοποιήσετε τις παρενθέσεις για να αποφύγετε το ακόλουθο σφάλμα:
Κωδικός: |_+_|
το οποίο δεν θα έλεγχε εάν η τιμή που έχει εκχωρηθεί στο foo είναι ίση με NULL, αλλά θα εκχωρούσε το boolean (bar() != NULL) στο foo.
Είναι επίσης σύνηθες και γενικά πιο σαφές να υπάρχει ο ρητός δυαδικός έλεγχος εκεί, γι' αυτό το αναμένει το GCC. μικρό
Τριβείο
προς το
- 24 Απριλίου 2008
- 9 Ιανουαρίου 2009
Κωδικός: |_+_|
είναι σωστό το C (αντιστοιχίστε το b στο a και ελέγξτε για μη μηδενικό), αλλά τις περισσότερες φορές οι άνθρωποι εννοούσαν πραγματικά
Κωδικός: |_+_|
Δεδομένου ότι η εκχώρηση εντός του if() είναι η εξαίρεση, το GCC εκδίδει μια προειδοποίηση σχετικά με αυτό. Επίσης, για τους μελλοντικούς αναγνώστες του κωδικού σας, οι επιπλέον παρενθέσεις υποδεικνύουν 'ναι, εννοώ πραγματικά την ανάθεση εδώ'.
Δημοφιλείς Αναρτήσεις