To polecenie shtool-scpp, które można uruchomić w darmowym dostawcy hostingu OnWorks, korzystając z jednej z wielu naszych darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
shtool-scpp - GNU shtool C plik źródłowy preprocesor
STRESZCZENIE
sztool scpp [-v|--gadatliwy] [-p|--utrzymywać] [-f|--filtr filtrować] [-o|--wyjście oficjalne]
[-t|--szablon tplik] [-M|--ocena znak] [-D|--definiować nazwa] [-C|--klasa cname] filet [filet
...]
OPIS
To polecenie to dodatkowy preprocesor plików źródłowych ANSI C do udostępniania Cpp(1) kod
segmenty, zmienne wewnętrzne i funkcje wewnętrzne. Intencja ta pochodzi z
pisanie bibliotek w ANSI C. Tutaj zwykle używa się wspólnego, współdzielonego wewnętrznego pliku nagłówkowego
współdzielenie informacji pomiędzy plikami źródłowymi biblioteki.
Operacja polega na analizowaniu specjalnych konstrukcji w filets, wygeneruj z tego kilka rzeczy
konstruuje i wstawia je w pozycję znak in tplik poprzez zapisanie wyjścia do oficjalne.
Dodatkowo filets nigdy nie są dotykane ani modyfikowane. Zamiast tego konstrukcje są usuwane
później przez Cpp(1) faza procesu budowy. Jedynym warunkiem wstępnym jest to, że każdy filet
ma ``"#include""oficjalne"""'' na górze.
To polecenie zapewnia następujące funkcje: Po pierwsze, unika zanieczyszczenia przestrzeni nazw i
zmniejsza nakłady pracy związane z prototypowaniem symboli wewnętrznych poprzez rozpoznawanie funkcji i zmiennych
które są zdefiniowane za pomocą identyfikatora klasy pamięci masowej ``cname''. Na przykład jeśli cname is
``intern'', funkcja ``"intern void *foobar(int quux)"'' w jednym z filets jest
przetłumaczone zarówno na ``"#define foobar __foobar"'', jak i ``"extern void *foobar(int
quux);"'' w oficjalne. Dodatkowo globalny ``"#define" cname „/**/” jest również tworzony w
oficjalne aby umożliwić kompilatorowi ciche zignorowanie tego dodatkowego identyfikatora klasy magazynu.
Po drugie, pliki źródłowe biblioteki zazwyczaj chcą współdzielić „typedef”, „#define” itp.
granice pliku źródłowego. Aby to osiągnąć, można umieścić te rzeczy ręcznie w
tplik lub użyj drugiej funkcji scpp:Cały kod w filets zamknięte w ``"#if"nazwa
... „#endif” jest automatycznie kopiowany do oficjalne. Dodatkowo globalny ``"#define" nazwa
0'' jest również tworzone w oficjalne aby umożliwić kompilatorowi ciche pominięcie tych części (ponieważ tak było)
(znajduje się już w nagłówku).
OPCJE
Dostępne są następujące opcje wiersza poleceń.
-v, --gadatliwy
Wyświetl niektóre informacje o przetwarzaniu.
-p, --utrzymywać
Zachowuje oficjalne niezależnie od wygenerowanych linii ``#line''. Jest to przydatne dla
Pliki Makefiles, jeśli rzeczywista zawartość oficjalne nie zmieni się, tylko numery wierszy. Domyślnie jest
nadpisać.
-f, --filtr filtrować
Zastosuj jedno lub więcej procesów wstępnego przetwarzania sed(1) filtrować polecenia (zwykle typu
``"s/.../.../"'') do każdego pliku wejściowego przed przeanalizowaniem jego danych wejściowych. Ta opcja może
wystąpić wielokrotnie.
-o, --wyjście oficjalne
Nazwa pliku wyjściowego. Domyślna nazwa to „lib.h”.
-t, --szablon tplik
Nazwa pliku szablonu. Domyślna nazwa to „lib.h.in”.
-M, --ocena znak
Zaznacz, aby zastąpić wygenerowanymi konstrukcjami. Domyślnie jest to "%%MARK%%".
-D, --definiować nazwa
FIXME. Domyślnie jest to "cpp".
-C, --klasa cname
FIXME. Domyślnie jest to „intern”.
PRZYKŁAD
# Plik Makefile
SRCS=foo_bar.c foo_quux.c
foo_p.h: foo_p.h.in
narzędzie scpp -o foo_p.h -t foo_p.h.in
-M %%MARK%% -D cpp -C stażysta $(SRCS)
/* foo_p.h.in */
#jeśliwykryto FOO_P_H
#zdefiniuj FOO_P_H
%%OCENA%%
#endif /* FOO_P_H */
/* foo_bar.c */
#include "foo_p.h"
#jeśli cpp
#zdefiniuj OURS_INIT 4711
#endif
stażysta w naszym;
statyczna int myone = 0815;
stażysta int bar(void)
{
nasz += mójjeden;
}
/* foo_quux.c */
#include "foo_p.h"
int main(int argc, char *argv[])
{
wew;
nasz = OURS_INIT
dla (i = 0; i < 10; i++) {
bar();
printf("nasze teraz %d\n", nasze);
}
0 wrócić;
}
HISTORIA
GNU sztool scpp polecenie zostało pierwotnie napisane przez Ralfa S. Engelschall
<rse@engelschall.com> w 1999 roku dla GNU sztool. Zostało to spowodowane potrzebą posiadania wcześniejszego
zakład przetwórczy w GNU PTH projekt.
Użyj shtool-scpp online za pomocą usług onworks.net