Standard (default) argument i c99?

Forum: Programmering

Frank

Hmm, kan man inte ha en "default argument" i c99? o.O

Försökte med att göra såhär eftersom att det är bekvämt:

datfile.h ( rad 34 & 35):
int // returns positive index if found; -1 elsewise
datfile_find_entry( DATH *dat, char *name, datFileEntry *entry = 0 );

När jag kompilerar med:

cc datfile.c -std=c99

får jag detta som svar:

datfile.h:35: error: expected ‘;’, ‘,’ or ‘)’ before ‘=’ token

-_-

Jag kom nämligen på att jag kan vara lat och använda datfile_find_entry i en annan funktion som läser in data från rätt ställe i datfile":n till datorns arbetsminne.


Frank

Efter febrilt sökande så har jag kommit fram till att det verkar inte finnas något sådant...

Tycker det verkar konstigt, det borde ju vara extremt lätt att implementera något sådant i en kompilator.

Ska nog göra ett eget språk med en egen kompilator efter att jag arbetat undan några projekt ^.^


Fredrik

Du kan göra ett förprocessormakro för funktionen som tar färre argument och lägger till argument. Det är förstås inte lika bekvämt, men det fungerar. Tyvärr behöver nog varje makro ett unikt namn. Jag hittar inte något sätt att göra makron med varierande antal argument och testa antalet argument direkt i makrot.

Ändrat 2010-02-12 23:15 av Fredrik


Frank

Blä, C Preprocessor. Annars kan jag nog skriva en egen preprocessor som är annorlunda. Fast nu är det bara frågan, hur konfiguerar man GCC till att köra den åt mig på varje C-fil först av allt automatiskt?

Antagligen så måste man bygga om GCC vilket tar säkert en 20 minuter :) KUL! :p

Har du hört talas om Google GOLD? ( GOogle LD/Linker ).


För att svara behöver du vara medlem och logga in. Att bli medlem går snabbt. Du behöver inte ge ut några personuppgifter eller verifiera någon e-postadress.