Library und globale Variablen?
-
Und schon habe ich meine nächste Frage:
Kann ich auch eine Enumeration aus einer h-Datei für andere sichtbar machen?
Mit extern will das nicht klappen?
-
Ich habe eine Funktion, welche einen Integer-Pointer zurückgibt. Sie sieht ungefähr so aus:
int* Function() { int array[20] .... fülle array .... return array; }
Ich bekomme dann folgende Warnung:
h:\myLib.cpp(21): warning C4172: returning address of local variable or temporary
Diese kann ich auch gut nachvollziehen, doch wie kann ich am besten dieses Problem umgehen?
-
Umgehen kannst du es mit
void Function(int* pArray)
Vorher reservieren und gut ist.
-
Ja, diese Lösung kenne ich, aber ich dachte es geht noch anders.
Vielleicht denke ich einfach zu kompliziert.
Danke.
-
warning LNK4098: defaultlib 'LIBCD' conflicts with use of other libs; use /NODEFAULTLIB:library
warning LNK4221: no public symbols found; archive member will be inaccessibleSo noch 2 warnings, bei denen ich nicht genau weiss, was ich machen soll?!
Die erste Warnung bezieht sich auf die Klasse, in der ich die Bibliothek benutze.
Die zweite hängt mit der Bibliothek zusammen.
-
Und noch eine weitere Frage:
wenn ich sage :char test = 0xCC;
Gibt es ein warning:
warning C4309: '=' : truncation of constant value
In der Hilfe steht:
'conversion' : truncation of constant value
The type conversion causes a constant to exceed the space allocated for it. You may need to use a larger type for the constant.
Example
char c = 128; // warning
char x = (char) 128; // warningIch frage mich dennoch warum? Der PC-Zeichensatz kann doch 1 Byte fassen. Ist zwar dann nicht mehr ASCII aber müsste doch gehen. Welche alternative gibt es denn sonst?
-
Paul_C. schrieb:
Und noch eine weitere Frage:
wenn ich sage :char test = 0xCC;
char ist eine Abkürzung für signed char(-128...127). 0xCC ist aber grösser als 128.
Kurt
-
Peinlich!
Habe ich gar nicht drüber nachgedacht.
-
Hat denn keiner ne Ahnung zu den oben genannten warnings?
-
So, ich habe ein Programm mit dem ich arbeiten soll, gegebenenfalls erweitern.
Dort ist in einer Headerdatei eine Struktur definiert.struct input { unsigned char up; ... }
Nun möchte ich von einer anderen c-Datei drauf zugreifen.(nicht die Headerdatei includen)
Wie mache ich das? Mit extern will das nicht klappen.
Eine Idee?