Symbole in einer static library definieren --> sinnvoll?

Gast #3722559
Lesenswert?

Hallo,

ich hätte eine Verständnissfrage zum Code in einer statischen library. 
Angenommen, wir hätten folgenden Code:
1
int func(void)
2
{
3
    int i=0;
4

5
#ifdef INCREMENT
6
    i++;
7
#endif
8

9
    return i;
10
}

Nun baue ich mir daraus eine static library, ohne dass das Symbol 
INCREMENT definiert wurde. Binde ich die library nun in einem Projekt 
ein, kommt natürlich i=0 als return-Wert zurück.

Binde ich die lib nun aber in einem Prjekt ein, in dem INCREMENT 
definiert wurde, ist der return-Wert dann richtiger weise =0 oder =1?
Gast #3722560
Lesenswert?

brechbunkt schrieb:
> Nun baue ich mir daraus eine static library
Dabei wird der Code kompiliert, und das i++ bleibt drin.
>, ohne dass das Symbol
> INCREMENT definiert wurde.
Das ist keine Symbol, sondern ein Preprozessor-Makro.
> Binde ich die library nun in einem Projekt
> ein, kommt natürlich i=0 als return-Wert zurück.
Nein, es kommt 1. Denn der Code wurde bereits bei Erstellung der Library 
kompiliert, und das Ergebnis aus der Library in das Programm kopiert.
> Binde ich die lib nun aber in einem Prjekt ein, in dem INCREMENT
> definiert wurde, ist der return-Wert dann richtiger weise =0 oder =1?
Das ist völlig unerheblich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren