免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4333 | 回复: 18
打印 上一主题 下一主题

C/C++ faq 7月24日 --7月28日 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-28 22:57 |只看该作者 |倒序浏览
简单问题:
1。发表主题: 本人是菜鸟,请问各位大虾,**p是什么意思?   
*p是取指针p所指的地址内容,那么**p 是什么意思呢?

小飞爱使申华 答:这么解释吧,你把你女朋友家的地址记在了文曲星上了,这文曲星又放在了抽屉里,这么着, 这 p 就是你脑子里的抽屉,

*p 就是文曲星,自然 **p 就是你媳妇家了。 所以如果你 p=NULL 或 *p=NULL,你就找不着你媳妇了,更有甚者,**p=NULL, 你媳妇家楼就

塌了(too bad)。

2。发表主题: BCB & Dev-c++的main函数是否有不同之处呢
无双 答:所有合C语法的意义都一样 MAIN功能是由标准C制定的 而不是由厂商制定的

3。发表主题: 为啥我的C++编译器不认iostream?
它似乎只认iostream.h,另外它也不认using namespace std。。。
jadexo答:像using spacename std; 和string来定义都不行
发现LINUX7.0上的GCC和G++都可以通过编译并运行,在WINDOW上还是DEV-C++爽呀(看帮中说它好象也是GCC编译器)!!一切都通过!

4。发表主题: 请教高手,还有版主呀,~~!!???急!!~   

  1. PS:一个数组
  2. 1 2 3
  3. 2 3 4
  4. 4 5 6

  5. 结果:
  6. 1 2 3
  7. 1 2 4
  8. 1 2 6
  9. 1 3 4
  10. 1 3 6
  11. 1 5 3
  12. 1 5 4
  13. 1 5 6
  14. 2 3 4
  15. 2 3 6
  16. 4 2 3
  17. 4 2 4
  18. 4 2 6
  19. 4 3 6
  20. 4 5 6
  21. 数据重复出掉,比如两个126,前后数据重复133,大概程序怎么做呀,请教高手呀啊,!~~~~~!!!!!!~~!!!!
复制代码

评:没有问清楚问题,标题也可以作为反面教材!

5 发表主题: 用curses函数编写的菜单程序花屏问题   
当system("who";时出现花屏!如何处理?

field 答:执行system之前没有endwin()

6。 发表主题: c中怎么表示16进制的字符串   
或者怎么把一串16进制的或者2进制的数字写到char 数组里面
for examele 40 3c 需要写到char [2]里面去

无双 答:char a[]={0x40,0x3c}; 注意因为中间可能会有\0 所以这时使用strcpy等要小心 它们都是遇到\0就认为字符串结束

7。发表主题: [gcc] 请教“主函数与子函数不在同一文件”的方法。
我想把“main()”放置在“main.c”里,而“asd_file_manage()”和它下面的所有函数放置在另外一个文件里。

无双 答:看看函数声明方法
main.c
extern asd_file_manage(); //添加这个
main(){ .... }

8。推荐几个网上的C/C++资源
http://www.chinaunix.net/forum/viewtopic.php?t=121469

9。 发表主题: 请问如何查出字符串中包含了全角字符???????
无双 答:全角是保存在两个char中
第一个>;127 ,ascII都<127

10.请问LEX和YACC是免费的么?
无双 答:免费版分别是 flex bision

11.发表主题: 如何理解C语言中的指针
  1. 下面的内容是我回复一个帖子时顺手写的,当时因为怕死机,所以写在了文件里。结果机器没死,帖子却被删了。现在找出来重新贴一

  2. 下。

  3. 指针也是一个简单类型,其实例有自己的存储空间(指针变量),占据固定的大小(一般为CPU的位长,如32位机,指针占用32/8=4个字节)。

  4. 和其它的简单类型(int、char、double)相比,最大的不同在于指针变量的值是一个地址,代表内存空间的某个地址(这么说不严格,这里不

  5. 深究),因此我们说指针指向地址X,这也是其名称的由来。至于这个内存空间中存放的内容,与指针无关。
  6. 用指针变量的dereferencing(即“*”操作符)可以访问其指向地址空间的内容。因为这时编译器要对该地址空间的内容进行解析,因此必须

  7. 知道此地址空间的类型(int、char、struct等),这时才涉及到指针指向的类型,如int*、char*等,表示指针指向的地址空间按照int类型或

  8. char类型解释。
  9. 需要强调的是,指针变量的值是任意的,也就是说指针变量可以指向任何地址空间。但因为操作系统的进程管理和内存管理机制,并不是什么

  10. 地址都是合法的,即并不是对任意地址的dereferencing都是合法的。但要注意这个不合法并不是语言的不合法,而是对系统机制的违背,因此

  11. 指针引起的非法dereferencing都表现为运行时的BUG,而编译器却无能为力。因此,保证指针变量的值指向的是合法的地址空间就成了C程序员

  12. 的责任,如指向其它的变量、函数或用malloc显示分配。这也成了C语言中最大的错误源泉。
  13. 从上面的描述不难看出,当使用指针的时候一定要注意两个存储空间:指针变量自己的存储空间(固定大小,相对同一系统而言)和指针指向

  14. 的地址空间(由指针变量的值决定)。只要这两个空间都是合法的,程序的BUG会少许多。

  15. 关于C语言指针与数组的关系,这里没有提及,因为只要理解了指针,其关系简单得很。
  16. 另外,只是对一个帖子的简单回复,所以没有涉及更多。关于C语言的指针,有一本书专门论述,好像有600多页,我没看过,不知会论述到什

  17. 么程度。
复制代码

论坛徽章:
0
2 [报告]
发表于 2003-07-28 22:57 |只看该作者

C/C++ faq 7月24日 --7月28日

普通问题:
1。以前写的一个小游戏(on sco) 含全部源程序(精华贴)
打包下载http://www.chinaunix.net/forum/uploadfile/five.jpg
原文http://www.chinaunix.net/forum/viewtopic.php?t=124139
2。发表主题: 关于监视父进程状态
http://www.chinaunix.net/forum/viewtopic.php?t=124533

3。发表主题: 如何用gdb调试有参数的程序?
cacaty 答:set args 参数
比如 ./a.out -c start.ini
用 set args -c start.ini 然后run
帕帕虎 答:进入gdb后,在run后面加你原来程序的参数就OK了!同时你要注意路径

4。 发表主题: 三个在linux下C编程的问题
2个文件读取去长度问题1个fork问题
http://www.chinaunix.net/forum/viewtopic.php?t=123675

5。 发表主题:AIX nix操作系统上如何"编程"获取进程的内存、CPU利用状况?
只需要统计物理内存大小,和总的内存使用率.以及cpu的个数,和cpu的使用率!

蓝色键盘 答:操作/proc 精华区有个帖子里面有aix的proc代码。
如果不要精确,用shell,或者程序调用shell的方式,或者程序中直接运行系统sysconf,top,tmstat等,用system。exec或者popen。其中

sysconf是个函数调用。

6。 发表主题: 请问在curses下如何清空输入缓冲区。   
请问在curses下如何清空缓冲区。好像用fflush(stdin)不行的。

yuxiaojie 答:flushinp()的函数

7。发表主题: typedef会在预处理中处理掉吗?
无双答:http://e.swjtu.edu.cn/jiaowu/jxzd/wykj/cpro/chp9/9-10-1.htm
typedef与#define有相似之处,如:typedef int COUNT;和 #define COUNT int 的作用都是用COUNT代表int。但事实上,它们二者是不同的。

#define在预编译时处理的,它只能作简单的字符串替换,而typedef是在编译时处理的。实际上它并不是作简单的字符串替换,例如:typedef

int NUM[10];并不是用NUM[10]去代替int,而是采用如同定义变量的方法那样来定义一个类型(就是前面介绍过的将原来的变量名换成类型名

)。

8。发表主题: 问一个关于C的问题   
如何判断一个目录下是否有文件?(文件名称未知)
而且文件有多个的情况如何呢?
http://www.chinaunix.net/forum/viewtopic.php?t=124382里面有源代码linux的和win的

9。发表主题: 如何声明并定义函数数组?
里面是关于指针的讨论http://www.chinaunix.net/forum/viewtopic.php?t=116849

10。发表主题: 关于socket返回值的探讨
根据,帮助所说,socket 调用的返回值有以下情况:
-1 :表示调用失败.
n:表示成功.返回可以使用的描述符.
但是,我想请教一下, 返回0时,是什么意思.什么情况下会返回0 ?

无双 答:dup2(socketid,0) 或是先close (0 )
0是标准输入 许多程序中已使用 所以打开任何文件都不会是返回0
除非先关闭标准输入

11。 发表主题: read和write是不是线程安全的   
比如同一个连接句柄nConnFd,一个线程在其上做read动作
同时另一个线程试图在其上做write动作
结果会这样,write阻塞?还是会出错,或者其他的。

无双 答:socket的话发送缓冲区与接收缓冲区是分开的
所以可以同时进行


12。发表主题: The Function Pointer Tutorials
http://www.chinaunix.net/forum/viewtopic.php?t=124322学习的看看

13。发表主题: C++ [1>;返回结构与原型问题.2>;小概念.]
http://www.chinaunix.net/forum/viewtopic.php?t=123276里面有些讨论

14。 发表主题: 请教几个模糊的概念!!动态编连,动态静态编译,等等
  1. 请教几个模糊的概念!!动态编连,动态静态编译,等等
  2. 好想程序编译的时候有动态和静态编译一说吧
  3. 好像是跟库文件的联接问题
  4. 还有动态连编和静态连编(还是编连阿)
复制代码
  1. 这个问题涉及的东西很多,不过概念的清晰只要搞清楚他们之间
  2. 的差别就没有问题了,静态库是档案库,他是若干目标文件的集合,
  3. 在联编时,编译器抽取需要的目标文件连接到你需要的可执行文件中,
  4. 而动态库则不然,在你的可执行文件中不存在库代码,而只给出一个
  5. 函数的入口条目,在执行时系统为你自动连接对应的库,这里如果单纯
  6. 讨论性能的优略不是太有意义,关键是如果库代码有所改变,对于
  7. 程序发行更方便,也就是说,如果你的改变仅限于库代码,那你只需要
  8. 更新对应的库文件就可以了,当然你要保证调用时的入口参数没有
  9. 变化。
  10. 这里我给出一个有意义的建议,就是生成静态库时,要合理组织你的
  11. 目标文件(也就是 .o )除非有必要,否则不要把无关的函数集中在
  12. 一个源文件中。
复制代码

论坛徽章:
0
3 [报告]
发表于 2003-07-28 22:57 |只看该作者

C/C++ faq 7月24日 --7月28日

15。发表主题: 我的C语言编程例程一(Solaris和FreeBSD下取得CPU频率)
http://www.chinaunix.net/forum/viewtopic.php?t=123356学习的看看

16。发表主题: 请教一个用c连接mysql数据库的问题
http://www.chinaunix.net/forum/viewtopic.php?t=122687

17。发表主题: 怎样用c实现ftp的自动传输(不用shell)?
我想用怎样用c实现ftp的自动传输(不用shell)请大家帮忙看一下。以下是我写的有问题的程序,该怎样改。
  1. #include<stdio.h>;
  2. #include<unistd.h>;
  3. void main()
  4. {
  5. execl( "/usr/bin/ftp",
  6. "ftp -i -n",
  7. "192.9.212.62",
  8. "21",
  9. // "root" /*用户名*/
  10. // "root" /*密码*/
  11. NULL);
  12. }[code]
  13. zhlei 答:[code]main(int argc,char **argv)
  14. {
  15.   char buf[256];
  16.   FILE *fp;
  17.   fp=popen("ftp -inv *.*.*.*","w");
  18.   if(fp==NULL)
  19.   {
  20.     perror("popen");
  21.     exit(1);
  22.   }
  23.   fprintf(fp,"user ***  ***\n");
  24.   fprintf(fp,"get mail.test\n");
  25.   pclose(fp);
  26.   printf("ok\n");
  27. }
复制代码


18。发表主题: 原始套节口操作函数示例
http://www.chinaunix.net/forum/viewtopic.php?t=123310
评:绝对精华,包含tcp、udp和ip层如何操作。

19。 发表主题: 2种不同的if语句写法,对性能有没有影响???
第一种: if( 条件1 && 条件2 &&条件3 )
{...};
第二种: if (条件1)
if (条件2)
if (条件3)
{...}
蓝色键盘 答:
  1. 在不知道具体要什么条件的情况下,无法比较。
  2. 1、第一种: if( 条件1 && 条件2 &&条件3 )
  3. {...};
  4. 大多数编译程序,发现条件1为假,那么就判断完毕了。如果三个条件都为真,那么效率与三个的顺序和安排也有关系,例如最具有限制性的和

  5. 很少出现的,频繁出现的都会影响到这里的效率。
  6. 2、第二种: if (条件1)
  7. if (条件2)
  8. if (条件3)
  9. {...}
  10. 以次判断,和第一个一样。如果三个条件都为真,那么效率与三个的顺序和安排也有关系。
  11. 如果第一个为假并且顺序安排和上面的一样的话,效率差不多一样。
  12. 我感觉应该第一种能快一些,不知道对不对
复制代码


20。发表主题: ORACLE数据库PROC编程经验介绍 (不知道贴过没右)
http://www.chinaunix.net/forum/viewtopic.php?t=122117

21。发表主题: 如何理解mmap的特征:所有的I/O都在内核的掩盖下完成.?
http://www.chinaunix.net/forum/viewtopic.php?t=122221不少讨论

22。发表主题: 怎么样在unix下用c来获得文件大小
各位老大,谁知道啊,否则俺还要写个shell,然后在c里system,通过ls -l和awk
sjha7285
  1. #include <sys/stat.h>;
  2. main()
  3. {
  4. struct stat sb;
  5. fstat(fd,&sb);
  6. 文件长度=sb.st_size
  7. ...
  8. }
复制代码


23.发表主题: scanf和gets连用的问题。
http://www.chinaunix.net/forum/viewtopic.php?t=122818
蓝色键盘答:刷新一下标准输入的缓存fflutsh
或者将stdin的缓存设置位NULL,用setvbuf或者setbuf。

24。发表主题: 再论传递文件描述符
http://www.chinaunix.net/forum/viewtopic.php?t=121580精华讨论

25。发表主题: AIX上的gcc编译器,怎样使用超过256M的内存?
首先ulimit -d 把DATA加大到256MB以上,否则会出来IO abort错误
然后 gcc默认只使用32位指针, 加-maix64强制使用64位的
g++ -maix64 -o tst tst.cpp 就OK了.

程序当了多少内存可以用ps auxwww|grep tst来看
RSS就是使用的内存数量,单位为K


26。 发表主题: 请教在C中怎么实现动态分配内存给数组?
http://www.chinaunix.net/forum/viewtopic.php?t=120743讨论

27。1。发表主题: 安裝好gcc 以後在/usr/local/bin 下為何只能敲./gcc 才能run

小飞爱使申华答:
原因是在PATH中没有当前路径。如果是bash or bsh,
try:
PATH=$PATH:.
export PATH

28。 发表主题: MIME编码介绍
http://www.chinaunix.net/forum/viewtopic.php?t=122793

29。lovetjl 发表主题: 在c中是否有filelength函数直接获取文件的大小!   
在c中是否有filelength函数直接获取文件的大小!

freecoder 答:lstat(const char *file_name, struct stat *buf)
struct stat 中的st_size就是文件的大小

论坛徽章:
0
4 [报告]
发表于 2003-07-28 22:58 |只看该作者

C/C++ faq 7月24日 --7月28日

30。 发表主题: 关于recv数据包阻塞的一个问题,大家帮忙看看。
如果数据包的长度大于定义的最大长度那么就循环接受数据,然后保存到缓冲区中,问题是当接受结束的时候(recv不到数据),程序阻塞在

recv之前,运行并没有通过recv,所以就没有跳出while循环,这样总也不能接受一个完整的数据包,请问如何能在接受结束之后跳出while从而

循环接收一个完整的数据包?
http://www.chinaunix.net/forum/viewtopic.php?t=122243相关讨论

31。发表主题: strcat还有错误??奇怪??
http://www.chinaunix.net/forum/viewtopic.php?t=120650讨论

32。发表主题: 学习《进程间通信(英文影印)》中不明白的一段话
http://www.chinaunix.net/forum/viewtopic.php?t=119704

为解决问题:
1。发表主题: 能否给段ioctl传递socket描述符的代码?
http://www.chinaunix.net/forum/viewtopic.php?t=124251
评:ioctl使用比较繁复,不好答。

2。SunOS5.8 CC4.2 如何编译,才能用gdb进行源码调试?
http://www.chinaunix.net/forum/viewtopic.php?t=123697

3。 发表主题: 斑竹及各位大虾,看看这个关于区位码的问题谁能解决?
http://www.chinaunix.net/forum/viewtopic.php?t=123861

4。发表主题: 求助啊:又是类型的错
http://www.chinaunix.net/forum/viewtopic.php?t=123585

5。发表主题: 谁知道在aix上使用动态连接库怎么编译?   
在scounix上编译是加 -dy选项,在aix上用xlc_r4编译该用什么选项呢?
http://www.chinaunix.net/forum/viewforum.php?f=23&topicdays=90&start=60

6。发表主题: 编译错误,请大家看一看!!!
http://www.chinaunix.net/forum/viewtopic.php?t=121005

7。发表主题: 链表排序问题求助!
http://www.chinaunix.net/forum/viewtopic.php?t=125442
他就要个例子

论坛徽章:
0
5 [报告]
发表于 2003-07-28 22:59 |只看该作者

C/C++ faq 7月24日 --7月28日

看见好多问题都难以分类,深为自己水平低下为耻
偶要加油了

论坛徽章:
0
6 [报告]
发表于 2003-07-28 23:05 |只看该作者

C/C++ faq 7月24日 --7月28日

哗哗哗!掌声鼓励。很不错了,我都不敢接这单活,怕搅浑了。

论坛徽章:
0
7 [报告]
发表于 2003-07-28 23:28 |只看该作者

C/C++ faq 7月24日 --7月28日

很不错

另外这只是一个锻炼

还有就是也不用把每个问题都写出来 只要把自己认为有用的 比较重要的答案写出来就可以了

odin_free   祝你早日成功 明天我会接着你今天整理后的继续

论坛徽章:
0
8 [报告]
发表于 2003-07-28 23:58 |只看该作者

C/C++ faq 7月24日 --7月28日

鼓掌!!严重支持!!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2003-07-29 13:53 |只看该作者

C/C++ faq 7月24日 --7月28日

odin_free, 这样详细的整理,用不了半年的时间,相信你的视野要比我的开阔的多。你会在不知不觉中成长和提高的。

在此感谢odin_free朋友精彩的整理。
也希望你能在这里学习到更多的东西。

论坛徽章:
0
10 [报告]
发表于 2003-07-29 18:07 |只看该作者

C/C++ faq 7月24日 --7月28日

ok!
不错!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP