RTV forum PL | NewsGroups PL

Czy istnieje możliwość skrócenia kodu w C na AVR GCC jako odpowiednik Pascalowego 'with'?

Czy w C jest odpowiednik pascalowego with

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Czy istnieje możliwość skrócenia kodu w C na AVR GCC jako odpowiednik Pascalowego 'with'?

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.

elektroda NewsGroups Forum Index - Elektronika Polska - Czy istnieje możliwość skrócenia kodu w C na AVR GCC jako odpowiednik Pascalowego 'with'?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map