Δημοσιεύτηκε: 25 Φεβ 2012, 14:09
Ηλία, και κάτι που μου ήρθε τώρα, σκεπτόμενος πως έγραψες ότι θα χρησιμοποιείς το mySCANF() που σου πρότεινα. Λοιπόν, αντί να το κάνεις copy σε κάθε σου κώδικα, μια μόνιμη λύση είναι να το βάλεις σε ένα ξεχωριστό header file, π.χ. myextras.h με το ακόλουθο περιεχόμενο:
Φτιάξε κατόπιν έναν φάκελο όπου θέλεις, όπου θα φυλάς τα δικά σου custom header files (όπως το myextras.h)... μπορείς να ονομάσεις τον φάκελο όπως θέλεις, π.χ: myInclude.
Όλοι οι C compilers σου δίνουν τη δυνατότητα να καθορίσεις φακέλους μέσα στους οποίους θα ψάχνουν για header (και για library) files, πέρα δηλαδή από τους δικούς τους στάνταρ φακέλους. Στον gcc το κάνεις με το flag -I (για libraries είναι -L).
Δηλαδή, αν έχεις φτιάξει π.χ. τον φάκελο: /usr/share/myInclude που περιέχει μέσα του το αρχείο myextras.h τότε γράφεις στους κώδικές σου...
και κάνεις compile ως εξής:
Προφανώς μπορείς να ορίσεις κι άλλα πράγματα μέσα στο αρχείο myextras.h, ή/και να φτιάξεις κι άλλα δικά σου .h αρχεία.
ΥΓ. Φτιάξε κι ένα shell alias του gcc που να το αντικαθιστά π.χ. με "gcc $* -I/usr/share/myInclude" και γράφε εκείνο αντί για gcc στον φλοιό
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
/*
* File: myextras.h
*/
#ifndef MY_EXTRAS_H /* inclusion Guard */
#define MY_EXTRAS_H
/* C99 specific macro, substituting scanf() */
#define mySCANF( ... ) \
do { \
char iNPutbUfFeR[1024+1] = {'\0'}; \
fgets( iNPutbUfFeR, 1024+1, stdin ); \
sscanf( iNPutbUfFeR, __VA_ARGS__ ); \
} while(0)
#endif /* #ifndef MY_EXTRAS_H */
Φτιάξε κατόπιν έναν φάκελο όπου θέλεις, όπου θα φυλάς τα δικά σου custom header files (όπως το myextras.h)... μπορείς να ονομάσεις τον φάκελο όπως θέλεις, π.χ: myInclude.
Όλοι οι C compilers σου δίνουν τη δυνατότητα να καθορίσεις φακέλους μέσα στους οποίους θα ψάχνουν για header (και για library) files, πέρα δηλαδή από τους δικούς τους στάνταρ φακέλους. Στον gcc το κάνεις με το flag -I (για libraries είναι -L).
Δηλαδή, αν έχεις φτιάξει π.χ. τον φάκελο: /usr/share/myInclude που περιέχει μέσα του το αρχείο myextras.h τότε γράφεις στους κώδικές σου...
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#include "myextras.h"
/* μπορείς πλέον να χρησιμοποιήσεις οτιδήποτε έχεις ορίσει μέσα στο myextras.h */
...
και κάνεις compile ως εξής:
- Κώδικας: Επιλογή όλων
gcc myprog.c -I/usr/share/mhyInclude
Προφανώς μπορείς να ορίσεις κι άλλα πράγματα μέσα στο αρχείο myextras.h, ή/και να φτιάξεις κι άλλα δικά σου .h αρχεία.
ΥΓ. Φτιάξε κι ένα shell alias του gcc που να το αντικαθιστά π.χ. με "gcc $* -I/usr/share/myInclude" και γράφε εκείνο αντί για gcc στον φλοιό