Czy w C jest odpowiednik pascalowego with

Aug 23, 2006 8 Replies

Jak w temacie. Chodzi o AVR GCC. Chcia³bym ul¿yæ sobie i nie wypisywaæ osiemna¶cie razy tej samej nazwy zmiennej strukturalnej. Czy siê da?


mozesz np stworzyc macro ewentualnie uzyc jakiejs prostej nazwy np

#define a dluga_nazwa

Pozdrawiam, Rafal

Nazwy krótkie to ju¿ mam. A jak siê robi makra? Nie wiedzia³em, ¿e jest taka mo¿liwo¶æ i zawsze robiê zamiast makra oddzielny plik w³±czany za pomoc± #include tam, gdzie potrzebujê. Do tego kilka #define i jest co¶ a'la makro.

Bogdan Gutknecht schrieb:

na przykład tak:

#define plus(x,y) ((x)+(y))

ale lepiej dać funkcję inline zamiast tego, mniej efektów ubocznych

Co do with to go w C nie ma. Można się posłużyć wskaźnikami zamiast tego, czasem.

Waldek

U¿ytkownik "Waldemar" snipped-for-privacy@infocity.de napisa³ w wiadomo¶ci news: snipped-for-privacy@uni-berlin.de...

A funkcje inline s± w C ? P.G.

Piotr Gałka schrieb:

w C nie, ale niektóre kompilatory C++ pozwalają na użycie inline też w programach C. Nie wiem, czy gcc jest takowym.

Waldek

w standardzie C99 s± - je¶li masz kompilator zgodny z tym standardem. pozdrawiam grzesyou

To nie jest makro. Niestety taka konstrukcja ograniczona jest do jednej linii

Aby kompilator skompilowa³ inline jako inline niestety musi spe³niæ kilka warunków i dlatego nie nadaje siê do nieco bardziej skomplikowanych fragmentów programu. Narazie widzê, ¿e muszê zostaæ przy swoich #include'ach. Zastanawia³em siê nad #template, ale te¿ siê nie nadaje do u¿ycia jako makro.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required