Bogdan Gutknecht
Guest
Wed Aug 23, 2006 10:45 am
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?
Rafal M
Guest
Wed Aug 23, 2006 11:07 am
Bogdan Gutknecht wrote:
Quote:
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
Bogdan Gutknecht
Guest
Wed Aug 23, 2006 11:34 am
Quote:
mozesz np stworzyc macro ewentualnie uzyc jakiejs prostej nazwy np
#define a dluga_nazwa
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.
Waldemar
Guest
Wed Aug 23, 2006 1:26 pm
Bogdan Gutknecht schrieb:
Quote:
mozesz np stworzyc macro ewentualnie uzyc jakiejs prostej nazwy np
#define a dluga_nazwa
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.
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
Piotr Gałka
Guest
Wed Aug 23, 2006 1:34 pm
Użytkownik "Waldemar" <waldemar.krzok@infocity.de> napisał w wiadomości
news:4l33c1F117cU1@uni-berlin.de...
Quote:
Bogdan Gutknecht schrieb:
mozesz np stworzyc macro ewentualnie uzyc jakiejs prostej nazwy np
#define a dluga_nazwa
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.
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.
A funkcje inline są w C ?
P.G.
Waldemar
Guest
Wed Aug 23, 2006 2:33 pm
Piotr Gałka schrieb:
Quote:
Użytkownik "Waldemar" <waldemar.krzok@infocity.de> napisał w wiadomości
news:4l33c1F117cU1@uni-berlin.de...
Bogdan Gutknecht schrieb:
mozesz np stworzyc macro ewentualnie uzyc jakiejs prostej nazwy np
#define a dluga_nazwa
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.
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.
A funkcje inline są w C ?
P.G.
w C nie, ale niektóre kompilatory C++ pozwalają na użycie inline też w
programach C. Nie wiem, czy gcc jest takowym.
Waldek
Martin Lukasik
Guest
Wed Aug 23, 2006 2:36 pm
Quote:
Nie wiem, czy gcc jest takowym.
Jest.
m.
--
Marcin Lukasik, marcin na milea kropka pl
http://milea.pl -- sieci bezprzewodowe
``The only difference between men and boys is the price of their toys.''
grzesyou
Guest
Wed Aug 23, 2006 3:28 pm
Quote:
A funkcje inline są w C ?
w standardzie C99 są - jeśli masz kompilator zgodny z tym standardem.
pozdrawiam grzesyou
Bogdan Gutknecht
Guest
Thu Aug 24, 2006 5:06 am
Quote:
na przykład tak:
#define plus(x,y) ((x)+(y))
To nie jest makro. Niestety taka konstrukcja ograniczona jest do jednej
linii
Quote:
ale lepiej dać funkcję inline zamiast tego, mniej efektów ubocznych
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.