outoa C:tä !!!

mihin tämä perustuu (menee gcc -kääntäjästä läpi aiheuttamatta virheilmoitusta):

printf (_(" at "));

tai

printf (_(" (inlined by) "));

????

ensimmäinen rivillä 271 ja jälkimmäinen rivillä 296, molemmat tiedostossa
addr2line.c Binutils -paketista ( binutils-2.22.tar.bz2 ).

kummassakin alaviiva ( _ ) on printf -kutsun sisällä mutta lainausmerkkien ULKOpuolella !!!

Mihin tuo perustuu ?
Ja mikä on ko. alaviivan merkitys ?
Ilmianna
Jaa

3 Vastausta



Entä jos haluan vain kääntää ohjelman, mutta getText -funktionaalisuus ei voisi vähempää kiinnostaa?

sivun https://en.wikipedia.org/wiki/Gettext mukaan:

printf(gettext("My name is %s.\n"), my_name);
would become:
printf(_("My name is %s.\n"), my_name);

ja tuo siis perustuu tähän (C preprocessor):

#define _(merkkijono) gettext(merkkijono)

Ilmeisesti tuosta gettextistä saattaisi päästä eroon näin (ylläolevan sijasta):

#define _(merkkijono) fakegettext(merkkijono)

ja sitten:

JOKO:

char * fakegettext(char* A) {
return A;
}

TAI:
char * fakegettext(const char* A) {
return A;
}

Kumpi on parempi, eli laitetaanko const -lisämääreellä vai ilman ?

Ylläolevan siis olisi tarkoitus mahdollistaa sellaisen ohjelman kääntäminen, jossa alkuperäinen tekijä on käyttänyt gettext -systeemiä, mutta itse haluaisin kääntää ohjelman ilman vaatimusta asentaa gettext koneelleni.
Ilmianna
Jaa
#define _ (String) gettext (String)

printf (_(" at "));

Ellet halua localisointi makron vaihtavan " at " merkkijonoa jonkin toisen kielen vastaavaan merkkijonoon, poistat vain sen siitä printf() funktion sisältä, eli

printf(" klo: ");
Ilmianna
Jaa

Vastaa alkuperäiseen viestiin

outoa C:tä !!!

mihin tämä perustuu (menee gcc -kääntäjästä läpi aiheuttamatta virheilmoitusta):

printf (_(" at "));

tai

printf (_(" (inlined by) "));

????

ensimmäinen rivillä 271 ja jälkimmäinen rivillä 296, molemmat tiedostossa
addr2line.c Binutils -paketista ( binutils-2.22.tar.bz2 ).

kummassakin alaviiva ( _ ) on printf -kutsun sisällä mutta lainausmerkkien ULKOpuolella !!!

Mihin tuo perustuu ?
Ja mikä on ko. alaviivan merkitys ?

5000 merkkiä jäljellä

Peruuta