cgo: implement char type

This type is a bit more difficult because it can be signed or unsigned
depending on the target platform.
This commit is contained in:
Ayke van Laethem
2019-04-20 15:10:27 +02:00
committed by Ron Evans
parent b2e96fc35a
commit 9c46ac4eed
6 changed files with 20 additions and 1 deletions
+1
View File
@@ -8,6 +8,7 @@ double globalDouble = 3.2;
_Complex float globalComplexFloat = 4.1+3.3i;
_Complex double globalComplexDouble = 4.2+3.4i;
_Complex double globalComplexLongDouble = 4.3+3.5i;
char globalChar = 100;
collection_t globalStruct = {256, -123456, 3.14, 88};
int globalStructSize = sizeof(globalStruct);
short globalArray[3] = {5, 6, 7};
+1
View File
@@ -40,6 +40,7 @@ func main() {
println("complex float:", C.globalComplexFloat)
println("complex double:", C.globalComplexDouble)
println("complex long double:", C.globalComplexLongDouble)
println("char match:", C.globalChar == 100)
// complex types
println("struct:", C.int(unsafe.Sizeof(C.globalStruct)) == C.globalStructSize, C.globalStruct.s, C.globalStruct.l, C.globalStruct.f)
+1
View File
@@ -36,6 +36,7 @@ extern double globalDouble;
extern _Complex float globalComplexFloat;
extern _Complex double globalComplexDouble;
extern _Complex double globalComplexLongDouble;
extern char globalChar;
extern collection_t globalStruct;
extern int globalStructSize;
extern short globalArray[3];
+1
View File
@@ -14,6 +14,7 @@ double: +3.200000e+000
complex float: (+4.100000e+000+3.300000e+000i)
complex double: (+4.200000e+000+3.400000e+000i)
complex long double: (+4.300000e+000+3.500000e+000i)
char match: true
struct: true 256 -123456 +3.140000e+000
array: 5 6 7
union: true