Stattdessen 2*i
schrieb ich nachlässig 2i
:
int foo(int i)
{
2i;
return 2i;
}
Ich habe erwartet, dass der Compiler den Fehler abfängt. Aber das tat es nicht. Ist also 2i
eine gültige Aussage in C? Wenn ja, was macht es? Verwirrt!
Ich habe mit gcc Version 5.3.0 kompiliert und hier ist die Assembly-Ausgabe:
.file "strange.c"
.text
.globl foo
.type foo, @function
foo:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movl %edi, -4(%rbp)
nop
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size foo, .-foo
.ident "GCC: (GNU) 5.3.0"
.section .note.GNU-stack,"",@progbits
_Complex
Zahlen. Nach einigem Lesen des Standards und des bereitgestellten Links denke ich, dass die Antwort von @ iharob richtig ist.
_Complex
Typ. Ich fand dies heraus, als ich eine Datenverarbeitungssoftware für meine Diplomarbeit schrieb ( Physik eigentlich nicht Informatik oder ähnliches ) - ( ich musste einen Tiefpassfilter anwenden, also Faltung so schnelle Fourier-Transformation, so fftw ).