This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Warnung C184 (value of... possibly undefined ) fehlt?

Hallo,
für folgenden Code wird nur für die Variable n3 die Warnung C184 (value possibly undefined) generiert, obwohl keine der Variablen einen definierten Wert besitzen.
Wird die Warnung nur generiert, wenn die lokale Variable auf dem Stack angelegt wird?
n1 und n2 sind ja eigentlich auch lokale Variablen, auch wenn sie nicht auf dem Stack angelegt werden.

#include"stdio.h"

// Speichermodell ist HLARGE

void main()
{
static int n1;
int near n2;// wird zu static, da Speichermodell=HLARGE
int n3;

	if(n1==1) n1++;
	if(n2==1) n2++;
	if(n3==1) n3++;

	printf("n1=%d, n2=%d, n3=%d",n1,n2,n3);
}

Parents
  • obwohl keine der Variablen einen definierten Wert besitzen.

    Doch, besitzen sie, zumindest wenn der Compiler so eingestellt ist, dass er annaehernd so funktioniert, wie es ein C-Compiler sollte. Statische Variablen werden initialisiert: zu Null, wenn nichts anderes angegeben ist. Nur automatische sind undefiniert. Anderenfalls ist der Compiler kaputt(-konfiguriert).

Reply
  • obwohl keine der Variablen einen definierten Wert besitzen.

    Doch, besitzen sie, zumindest wenn der Compiler so eingestellt ist, dass er annaehernd so funktioniert, wie es ein C-Compiler sollte. Statische Variablen werden initialisiert: zu Null, wenn nichts anderes angegeben ist. Nur automatische sind undefiniert. Anderenfalls ist der Compiler kaputt(-konfiguriert).

Children
No data