C/C++ Newbie's FAQ
Part I ÈçºÎÉÏ·
1. vi, vimÊDZàÒëÆ÷ô£¿
vi means visual editor£¬ÊÇÈí¼þÊÀ½çµÚÒ»¸öÈ«ÆÁÄ»±à¼Æ÷£¬×î³õµÄ×÷ÕßÊÇÏÖÔÚSun microsystemµÄBill Joy¡£
vim means Vi IMproved£¬¿ÉÒÔ¿´×÷ÊÇÔöÇ¿µÄvi¡£
ºÜ²»ÐÒ£¬ËûÃǶ¼²»ÊDZàÒëÆ÷£¬Èç¹ûÄãÒѾдºÃÁËfirst.c£¬ÄÇô²»ÄÜÖ¸ÍûviÃǽ«ÄãµÄÔ´´úÂë±ä³ÉÖ´ÐгÌÐò¡£
2. gcc, g++ÕâЩ¶¼ÊǸÉʲôÓõÄ
gcc means GNU C Collector£¬ÊÇGNUµÄÆì½¢Èí¼þ£¬×ÔÓÉÈí¼þ£¬CÓïÑÔ±àÒëÆ÷¡£
g++ ÊÇGNUµÄC++±àÒëÆ÷¡£
3. ÄÇôcc, CC, ld, makeÕâЩ³ÌÐòÓÖÊǸÉʲôµÄÄØ£¿
ccÊÇunix worldÖжÔc±àÒëÆ÷µÄ½Ð·¨£¬¾ÍÊÇc compiler¡£
CCÊǶÔc++±àÒëÆ÷µÄ½Ð·¨£¬ÕâÁ½¸öÃû³Æ¶¼²»ÌØÖ¸Ä³Ò»³§¼ÒµÄ²úÆ·¡£ÀýÈçHPÌṩµÄHP-UXÉÏc±àÒëÆ÷½Ðcc£¬SolarisÉÏ
µÄc±àÒëÆ÷Ò²½Ðcc
ld means link editor£¬ÊÇÁ¬½ÓÆ÷µÄͨ³Æ£¬²¢²»ÌØÖ¸Ä³Ò»¸ö¾ßÌåµÄ²úÆ·¡£µ«ÊÇËûÃǶ¼ÊÇÓÃÀ´Á¬½ÓÄ¿±êÎļþµÄ¡£
make means ???£¬make³ÌÐò¸ù¾ÝMakefile/makefileÖÐÖ¸¶¨µÄ¹æÔò£¬ÒÔ¼°Ò»Ð©Ä¬ÈϵĹæÔò£¬Íê³É´ÓÔ´´úÂëµ½×îÖÕ
´úÂëµÄ´¦Àí¹ý³Ì¡£²»¹â¿ÉÒÔÓÃÀ´±àÒëÁ¬½Ó³ÌÐò£¬Ò²¿ÉÒÔ×öÆäËüµÄһЩÓÐÒÀÀµ£¬·Ö½×¶ÎµÄÊÂÇé¡£
4. ÎÒÒѾ°²×°ÁËlinux£¬ÈçºÎ¿ªÊ¼ÎÒµÄC/C++Ö®ÂÃÄØ£¿
step 1: typein a helloworld program(1) in your favorate editor, I think it must be a vim
step 2: save your program to hello.c and then quit from the editor
step 3: typein 'gcc hello.c'
step 4: typein 'a.out'
Õâʱºò£¬ÄãÓ¦¸Ã¿ÉÒÔ¿´µ½ÄãµÄµÚÒ»¸ö³ÌÐòÒѾ˳ÀûÔËÐÐÁË£¡
ÎÒÃǽ«ÉÏÃæµÄËĸö²½Öè¸ÅÀ¨Ò»Ï£¬È»ºó×ñÑÕ⼸¸ö²½Ö裬Äã¾Í¿ÉÒÔ²»¶ÏµÄÉú²ú³ö¸÷ÑùµÄ³ÌÐòÁË
µÚÒ»²½£º±à¼³ÌÐò
µÚ¶þ²½£º±àÒë³ÌÐò
µÚÈý²½£ºÔËÐгÌÐò
5. ÎҵijÌÐòÔËÐнá¹ûÓëÎÒÏëÏóµÄ²»Í¬£¡
Èç¹ûÄãµÄµÚÒ»·´Ó¦ÊÇ"printfÕâ¸öº¯Êý£¨»òÕßgcc»òÕ߯äËûµÄ¿âʲôµÄ£©ÓÐÎÊÌ⣡"£¬ÄÇôÎÒÏëÄãÊǸö×ÔÁµ¿ñ£¬¼Çס£¬Õû¸ö
ϵͳÖÐΨһûÓо¹ý²âÊԵľÍÊÇÄãµÄ´úÂ룬Èκζ«Î÷¶¼ÊÇûÓÐÎÊÌâµÄ£¬³ýÁËÄãµÄ´úÂë¡££¨µ±È»gccÒ²¿ÉÄÜÓÐÎÊÌ⣬µ«ÊDZ»
ÄãÓöµ½µÄ¼¸ÂÊ¿ÉÒÔÔÝʱ¿´×÷ÊÇ0£©
ÎÒÃÇÓÐÁ½ÖÖ·½Ê½À´½â¾öÕâ¸öÎÊÌ⣺
µÚÒ»ÖÖ·½Ê½ÊÇʹÓÃprintfº¯ÊýÔÚ¿ÉÄܳöÎÊÌâµÄµØ·½Êä³öÏà¹Ø±äÁ¿£¬ºÃ´¦ÊÇ¿ÉÒÔ¿ìËÙµÄÉÏÊÖ£¬²»ÐèÒªÆäËûµÄ֪ʶ¡£»µ´¦ÊÇ
Èç¹ûÄãûÓÐ×ã¹»µÄ¼¼ÇÉ£¬ÄãÓпÉÄÜÍü¼Çɾ³ýÕâЩº¯Êý£¬ÒÔ¼°ÔÚ³ÌÐò±È½Ï´óµÄʱºòÿ´ÎÔö¼ÓÁËеÄprintf¶¼ÒªÖØÐ±àÒ룬
Ì«ÀË·Ñʱ¼ä¡£
µÚ¶þÖÖ·½Ê½ÊÇʹÓõ÷ÊÔÆ÷£¬±ÈÈçgdb¡£µ«ÊÇgdb¾ÍÏóÄãÖªµÀµÄÆäËû´ó²¿·Öµ÷ÊÔÆ÷Ò
Ïà¹ØÎĵµ£º
×òÌì²Å¿´µ½£¬µ«ÊÇÓöµ½Ò»Ð©ÎÊÌ⣬½ñÌì½â¾öÁË£¬¼ÇÏ¡¡£¨²Î¿¼£ºhttp://netbeans.org/kb/55/beginning-jni-part1.html£©
ÎÒÓõÄÊÇNetbeans 6.7£¬µ«ÊÇºÍÆäËûµÄÒ²Ó¦¸Ã´óͬСÒì°É¡£ »ù±¾Á÷³Ì£º JavaÕâ±ßµÄ£º
´´½¨javaÎļþ£¨´ønativeµÄ£©£¬»¹Òª¼ÇµÃÔÚÀàÖмÓÈ룺System.loadLibrary(xxx) ¡£
È»ºóÓÃjavahÀ´Éú³ÉC/ ......
1¡¢¶þάָÕëµÄÓ÷¨ËµÃ÷
a[i]´ÓÐÎʽÉÏ¿´ÊÇaÊý×éÖеĵÚi¸öÔªËØ¡£
Èç¹ûaÊÇһάÊý×飬Ôòa[i]´ú±íaÊý×éµÚi¸öÔªËØËùÕ¼µÄÄÚ´æµ¥ÔªµÄÄÚÈÝ¡£a[i]ÊÇÓÐÎïÀíµØÖ·µÄ£¬ÊÇÕ¼ÄÚ´æµ¥ÔªµÄ¡£
µ«Èç¹ûaÊǶþάÊý×飬Ôòa[i]ÊÇ´ú±íһάÊý×éÃû¡£ËüÖ»ÊÇÒ»¸öµØÖ·£¨ÈçͬһάÊý×éÃûÖ»ÊÇÒ»¸öÖ¸Õë³£Á¿Ò»Ñù£©¡£a£¬a+i£¬a[i], *(a+i), *(a+i)+j, a[i]+j¶¼Ê ......
ÖØÒªµÄ¼¸µã£º
ÈκÎÒ»¸öÂß¼ÔËËã·ûµÄÓÅÏȼ¶µÍÓÚÈκÎÒ»¸ö¹ØÏµÔËËã·û
ÒÆÎ»ÔËËã·ûµÄÓÅÏȼ¶Òª±ÈËãÊýÔËËã·ûµÍ£¬µ«±È¹ØÏµÔËËã·û¸ß¡£
º¯Êýµ÷ÓÃÓÅÏȼ¶Òª¸ßÓÚµ¥Ä¿ÔËËã·ûµÄÓÅÏȼ¶¡£È磺pÊÇÒ»¸öº¯ÊýÖ¸Õ룬Ҫµ÷ÓÃpÖ¸ÏòµÄº¯Êý£¬ÐëΪ(*p)()£¬ÈôΪ*p()£¬Ôò±àÒëÆ÷»á½âÊͳÉ*(p())£¬¼´´Ëʱp()ÊÇÒ»¸öº¯Êý¡£ÀàÐÍת»»Êǵ¥Ä¿ÔËËã·û£¬½áºÏÐÔÊÇ×ÔÓ ......
C/S½á¹¹£¬¼´Client/Server(¿Í»§»ú/·þÎñÆ÷)½á¹¹£¬ÊÇ´ó¼ÒÊìÖªµÄÈí¼þϵͳÌåϵ½á¹¹£¬Í¨¹ý½«ÈÎÎñºÏÀí·ÖÅäµ½Client¶ËºÍServer¶Ë£¬½µµÍÁËϵͳµÄͨѶ¿ªÏú£¬¿ÉÒÔ³ä·ÖÀûÓÃÁ½¶ËÓ²¼þ»·¾³µÄÓÅÊÆ¡£ÔçÆÚµÄÈí¼þϵͳ¶àÒÔ´Ë×÷ΪÊ×Ñ¡Éè¼Æ±ê×¼¡£
B/S½á¹¹£¬¼´Browser/Server(ä¯ÀÀÆ÷/·þÎñÆ÷)½á¹¹£¬ÊÇËæ×ÅInternet¼¼ÊõµÄÐËÆð£¬¶ÔC/S½á¹¹µÄÒ»Öֱ仯 ......
wchar_t wsWorkingDir[256] = _T("");
CString strPDF(_T(""));
::GetCurrentDirectory(256, wsWorkingDir);
strPDF.Format(_T("%s"), wsWorkingDir);
if (strPDF.GetAt(strPDF.GetLength()-1) != '\\')
{
strPDF += '\\';
}
strPDF += "doc\\my.pdf" ......