Quellcoderätsel
-
net schrieb:
Simon2 schrieb:
Edit: Aha - es geht inzwischen um eine andere Frage als ursprünglich ...
schade, die ursprüngliche fand ich eigentlich interessanter.die zweite war wohl zu gemein für dich ;)...
Nö,
finde ich aber (zumindestens auf den ersten Blick) interessanter...
Gruß,
Simon2.
-
Simon2 schrieb:
net schrieb:
die zweite war wohl zu gemein für dich ;)...
Nö,
nicht?
beweise es, ich glaub' es gibt noch mindestens 2 andere tricks (ganz ohne 'sizeof')
-
Ich hab' mal irgendwo eine Lösung gesehen, die auf den Kommentaren // (C++) und /../ (C) aufgebaut hat, aber ich krieg sie nicht mehr zusammen.
-
CStoll schrieb:
Ich hab' mal irgendwo eine Lösung gesehen, die auf den Kommentaren // (C++) und /../ (C) aufgebaut hat, aber ich krieg sie nicht mehr zusammen.
muss aber uralt gewesen sein. die c compiler heute können ja fast alle //
-
net schrieb:
muss aber uralt gewesen sein. die c compiler heute können ja fast alle //
Möglich, daß sie es können, aber afair entspricht das nicht dem ANSI C Standard.
PS: Hab's übrigens wiedergefunden:
int result = 1 //* */ 2 ;
-
CStoll schrieb:
Möglich, daß sie es können, aber afair entspricht das nicht dem ANSI C Standard.
doch, steht in ISO/IEC 9899:1999 kapitel 6.4.9 absatz 2:
Except within a character constant, a string literal, or a comment, the characters //
introduce a comment that includes all multibyte characters up to, but not including, the
next new-line character.
-
Er meint vielleicht ISO/IEC 9899:1989!?
-
finix schrieb:
Er meint vielleicht ISO/IEC 9899:1989!?
das ist aber 'outdated'
-
net schrieb:
finix schrieb:
Er meint vielleicht ISO/IEC 9899:1989!?
das ist aber 'outdated'
Ja, ich meinte C89, weil ich von dort aus gleich zu C++ gewechselt bin (und die Neuerungen in C99 habe ich bestenfalls am Rande mitbekommen).
-
Blue-Tiger schrieb:
warum liefert das unter C was anderes als unter C++?
Da die Frage noch nicht beantwortet wurde (oder habe ich die Antwort übersehen?): In C++ gilt sizeof(charLit) == sizeof(char). In C hingegen ist sizeof(charLit) == sizeof(int). Wobei charLit hier für ein beliebiges char-Literal steht (wie z.B. 'a'). Sollte also sizeof(char) auf der Test-Platform != sizeof(int) sein, bekommst du unterschiedliche Ergebnisse.
-
CStoll schrieb:
net schrieb:
muss aber uralt gewesen sein. die c compiler heute können ja fast alle //
Möglich, daß sie es können, aber afair entspricht das nicht dem ANSI C Standard.
PS: Hab's übrigens wiedergefunden:
int result = 1 //* */ 2 ;Ist das denn gültig im Sinne von "nur eine Zeile"? Das lässt sich doch so nicht in eine Zeile quetschen, oder?
-
siehe Name