c/c++void¼°voidÖ¸ÕëÀàÐÍ
c/c++void¼°voidÖ¸ÕëÀàÐÍ
¡¡¡¡1.¸ÅÊöÐí¶à³õѧÕß¶ÔC/C++ÓïÑÔÖеÄvoid¼°voidÖ¸ÕëÀàÐͲ»ÉõÀí½â£¬Òò´ËÔÚʹÓÃÉϳöÏÖÁËһЩ´íÎó¡£±¾ÎĽ«¶Ôvoid¹Ø¼ü×ÖµÄÉî¿Ìº¬Òå½øÐнâ˵£¬²¢ÏêÊövoid¼°voidÖ¸ÕëÀàÐ͵ÄʹÓ÷½·¨Óë¼¼ÇÉ¡£
¡¡¡¡2.voidµÄº¬ÒåvoidµÄ×ÖÃæÒâ˼ÊÇ“ÎÞÀàÐÍ”£¬void *ÔòΪ“ÎÞÀàÐÍÖ¸Õ딣¬void *¿ÉÒÔÖ¸ÏòÈκÎÀàÐ͵ÄÊý¾Ý¡£
¡¡¡¡void¼¸ºõÖ»ÓГעÊÍ”ºÍÏÞÖÆ³ÌÐòµÄ×÷Óã¬ÒòΪ´ÓÀ´Ã»ÓÐÈ˻ᶨÒåÒ»¸övoid±äÁ¿£¬ÈÃÎÒÃÇÊÔ×ÅÀ´¶¨Ò壺
¡¡¡¡void a;
¡¡¡¡ÕâÐÐÓï¾ä±àÒëʱ»á³ö´í£¬Ìáʾ“illegal use of type 'void'”¡£²»¹ý£¬¼´Ê¹void aµÄ±àÒë²»»á³ö´í£¬ËüҲûÓÐÈκÎʵ¼ÊÒâÒå¡£
¡¡¡¡voidÕæÕý·¢»ÓµÄ×÷ÓÃÔÚÓÚ£º
¡¡¡¡£¨1£©¶Ôº¯Êý·µ»ØµÄÏÞ¶¨£»
¡¡¡¡£¨2£© ¶Ôº¯Êý²ÎÊýµÄÏÞ¶¨¡£
¡¡¡¡ÎÒÃǽ«ÔÚµÚÈý½Ú¶ÔÒÔÉ϶þµã½øÐоßÌå˵Ã÷¡£
¡¡¡¡ÖÚËùÖÜÖª£¬Èç¹ûÖ¸Õëp1ºÍp2µÄÀàÐÍÏàͬ£¬ÄÇôÎÒÃÇ¿ÉÒÔÖ±½ÓÔÚp1ºÍp2¼ä»¥Ïำֵ£»Èç¹ûp1ºÍp2Ö¸Ïò²»Í¬µÄÊý¾ÝÀàÐÍ£¬Ôò±ØÐëʹÓÃÇ¿ÖÆÀàÐÍ
¡¡¡¡×ª»»ÔËËã·û°Ñ¸³ÖµÔËËã·ûÓұߵÄÖ¸ÕëÀàÐÍת»»Îª×ó±ßÖ¸ÕëµÄÀàÐÍ¡£
¡¡¡¡ÀýÈ磺
¡¡¡¡float *p1;
¡¡¡¡int *p2;
¡¡¡¡p1 = p2;
¡¡¡¡ÆäÖÐp1 = p2Óï¾ä»á±àÒë³ö´í£¬Ìáʾ“'=' : cannot convert from 'int *' to 'float *'”£¬±ØÐë¸ÄΪ£º
¡¡¡¡p1 = (float *)p2;
¡¡¡¡¶øvoid *Ôò²»Í¬£¬ÈκÎÀàÐ͵ÄÖ¸Õë¶¼¿ÉÒÔÖ±½Ó¸³Öµ¸øËü£¬ÎÞÐè½øÐÐÇ¿ÖÆÀàÐÍת»»£º
¡¡¡¡void *p1;
¡¡¡¡int *p2;
¡¡¡¡p1 = p2;
¡¡¡¡µ«Õâ²¢²»Òâζ×Å£¬void *Ò²¿ÉÒÔÎÞÐèÇ¿ÖÆÀàÐÍת»»µØ¸³¸øÆäËüÀàÐ͵ÄÖ¸Õë¡£ÒòΪ“ÎÞÀàÐÍ”¿ÉÒÔ°üÈÝ“ÓÐÀàÐÍ”£¬¶ø“ÓÐÀàÐÍ”Ôò²»ÄܰüÈÝ“ÎÞÀàÐÍ”¡£µÀÀíºÜ¼òµ¥£¬ÎÒÃÇ¿ÉÒÔ˵“ÄÐÈ˺ÍÅ®È˶¼ÊÇÈË”£¬µ«²»ÄÜ˵“ÈËÊÇÄÐÈË”»òÕß“ÈËÊÇÅ®ÈË”¡£ÏÂÃæµÄÓï¾ä±àÒë³ö´í£º
¡¡¡¡void *p1;
¡¡¡¡int *p2;
¡¡¡¡p2 = p1;
¡¡¡¡Ìáʾ“'=' : cannot convert from 'void *' to 'int *'”¡£
¡¡¡¡3.voidµÄʹÓÃ
¡¡¡¡ÏÂÃæ¸ø³övoid¹Ø¼ü×ÖµÄʹÓùæÔò£º
¡¡¡¡¹æÔòÒ» Èç¹ûº¯ÊýûÓзµ»ØÖµ£¬ÄÇôӦÉùÃ÷ΪvoidÀàÐÍ
¡¡¡¡ÔÚCÓïÑÔÖУ¬·²²»¼Ó·µ»ØÖµÀàÐÍÏÞ¶¨µÄº¯Êý£¬¾Í»á±»±àÒëÆ÷×÷Ϊ·µ»ØÕûÐÍÖµ´¦Àí¡£µ«ÊÇÐí¶à³ÌÐòԱȴÎóÒÔΪÆäΪvoidÀàÐÍ¡£ÀýÈ磺add ( int a, int b )
¡¡¡¡{
¡¡¡¡return a + b;
¡¡¡¡}
¡¡¡¡int main(int argc, char* argv[])
¡¡¡¡{
¡¡¡¡printf ( "2 + 3 = %d", add ( 2, 3) );
¡¡¡¡}
¡
Ïà¹ØÎĵµ£º
GCC°²×°³É¹¦,ËùÐèÎļþÓÐ:
libf2c-3.3.2-1.i386.rpm
libstdc++-devel-3.3.2-1.i386.rpm
glibc-kernheaders-2.4-8.36.i386.rpm
glibc-headers-2.3.2-101.i386.rpm
glibc-devel-2.3.2-101.i386.rpm
gcc-objc-3.3.2-1.i386.rpm
binutils-2.14.90.0.6-3.i386.rpm
gcc-3.3.2-1.i386.rpm
gcc-c++-3.3.2-1.i386.rpm
autom ......
ÄÚºËÆô¶¯µÄÏÖÔÚÒѾÊÇ¿ªÊ¼Ö´Ðк¯Êýstart_kernelº¯ÊýÁË¡£start_kernelº¯ÊýÔÚinit/main.cÖж¨Òå¡£start_kernelº¯ÊýÖ»ÊÇÍê³É
ÏàÓ¦µÄ½á¹¹µÄ³õʼ»¯ÈÎÎñ¡£
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
ÔÚubootµÄÒ»Ö±¹ý³ÌÖУ¬uboo ......
//¿âº¯ÊýʵÏÖ
char *strcat (char *dst, const char *src)
{
char *p = dst;
while (*p)
p++;
while ((*p++ = *src++))
;
return dst;
}
char *strncat (char *s1, const char *s2, long unsigned int n)
{
char *dest = s1;
  ......
1.
printf("%.9lf\n",sum);
//Êä³öСÊýµãºó9λ²»Ê¡È¥Ä©Î²¶àÓàµÄ0
2.
printf("%.10g\n",sum);
//Êä³öСÊýµãºó9λ²»Ê¡È¥Ä©Î²¶àÓàµÄ0
3.
#include<iomanip>
cout<<setprecision(10)<<sum<<endl;
//Êä³öСÊýµãºó9λʡȥĩβ¶àÓàµÄ0
4.
#include<iomanip>
cout.pre ......
[root@localhost test]# hexdump -s 0 -n 52 -C helloworld
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 03 00 01 00 00 00 10 83 04 08 34 00 00 00 |............4...|
00000020 30 08 00 00 00 00 00 00 34 00 20 ......