- turul16 blogja
- A hozzászóláshoz be kell jelentkezni
- 1424 megtekintés
Hozzászólások
Na, ezert nem lehet kernelt irni C++-ban :)
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Nem, nem resze. Se nem valodi, se nem nem valodi reszhalmaza. :)
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.
- A hozzászóláshoz be kell jelentkezni
Bocs, de C-ben mi a bánat akar lenni ez a .attrib így, ahogy szerepel?
- A hozzászóláshoz be kell jelentkezni
> mi a bánat akar lenni ez a .attrib
http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Designated-Inits.html#Desig…
"In a structure initializer, specify the name of a field to initialize with `.fieldname =' before the element value."
ISO/IEC 9899:TC2 ( http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf )
125. oldal: "If a designator has the form '. identifier' then the current object (defined below) shall have structure or union type and the identifier shall be the name of a member of that type."
- A hozzászóláshoz be kell jelentkezni
És ez ANSI C, vagy egy gcc különlegesség?
Na, látom közben megszerkesztetted.
- A hozzászóláshoz be kell jelentkezni
$ gcc -W -ansi stst.c -o stst-ansi
$ echo $?
0
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Én is használtam már így, néha egyszerűbb. ;)
Persze a blog posztra visszatérve, ez még nem jelenti azt, hogy C++-ban ne lehetne kernelt írni... :)
- A hozzászóláshoz be kell jelentkezni
kernelt lehetne, csak a linux kernelt átírni, szerintem erre célzott, de ezt te is tudod ;)
___
info
- A hozzászóláshoz be kell jelentkezni
Lelki szemeim elott megjelent a fel napig fordulo linux kernel... Persze, turelem van raktaron, hogyne...
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
?
- A hozzászóláshoz be kell jelentkezni
C99, teny, hogy nem K&R ota letezik :)
- A hozzászóláshoz be kell jelentkezni
Csak azért kérdeztem, mert nem láttam még ezt korábban, és kíváncsi voltam.
De így nem csoda. Amikor én még C-ben programoztam... azt hiszem 94 körül volt utoljára.
G
- A hozzászóláshoz be kell jelentkezni
Hello, ez osregi feature.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Ettől függetlenül a C90 nem támogatja:
$ gcc -W -ansi stst.c -o stst-ansi -pedantic
stst.c: In function 'main':
stst.c:3: warning: ISO C90 forbids specifying subobject to initialize
Már eleve a long long sincs a jelenlegi C++ szabványban, nem beszélve a többi C99 featureról, így triviális a címben szereplő állítás.
Ha meg olyat akarsz, ami a C90-ben fordul, de a C++-ban nem, tessék:
#include <stdlib.h>
int main()
{
int* a = malloc(sizeof *a);
free(a);
return 0;
}
Ekkor:
$ gcc -W -ansi stst.c -o stst-ansi -pedantic
$ g++ stst2.cpp
stst2.cpp: In function 'int main()':
stst2.cpp:4: error: invalid conversion from 'void*' to 'int*'
- A hozzászóláshoz be kell jelentkezni
Jelenlegi C++ szerint melyik azaz int tipus ami garantaltan 64<= bites ? Ill. melyik az ami pointer meretu integralis ?
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Sajnos rég foglalkoztam ilyen dolgokkal. Szabad a gazda!
(Persze, ha lehetséges, akkor majd adj a válaszok mellé valami referenciát is, amely majd mutatókkal szolgál számomra, hogy a ISO/IEC 14882:2003 szabványban van ez. Köszi!)
- A hozzászóláshoz be kell jelentkezni