Chinaunix
标题:
C/C++ faq 7月24日 --7月28日
[打印本页]
作者:
odin_free
时间:
2003-07-28 22:57
标题:
C/C++ faq 7月24日 --7月28日
简单问题:
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。发表主题: 请教高手,还有版主呀,~~!!???急!!~
PS:一个数组
1 2 3
2 3 4
4 5 6
结果:
1 2 3
1 2 4
1 2 6
1 3 4
1 3 6
1 5 3
1 5 4
1 5 6
2 3 4
2 3 6
4 2 3
4 2 4
4 2 6
4 3 6
4 5 6
数据重复出掉,比如两个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语言中的指针
下面的内容是我回复一个帖子时顺手写的,当时因为怕死机,所以写在了文件里。结果机器没死,帖子却被删了。现在找出来重新贴一
下。
指针也是一个简单类型,其实例有自己的存储空间(指针变量),占据固定的大小(一般为CPU的位长,如32位机,指针占用32/8=4个字节)。
和其它的简单类型(int、char、double)相比,最大的不同在于指针变量的值是一个地址,代表内存空间的某个地址(这么说不严格,这里不
深究),因此我们说指针指向地址X,这也是其名称的由来。至于这个内存空间中存放的内容,与指针无关。
用指针变量的dereferencing(即“*”操作符)可以访问其指向地址空间的内容。因为这时编译器要对该地址空间的内容进行解析,因此必须
知道此地址空间的类型(int、char、struct等),这时才涉及到指针指向的类型,如int*、char*等,表示指针指向的地址空间按照int类型或
char类型解释。
需要强调的是,指针变量的值是任意的,也就是说指针变量可以指向任何地址空间。但因为操作系统的进程管理和内存管理机制,并不是什么
地址都是合法的,即并不是对任意地址的dereferencing都是合法的。但要注意这个不合法并不是语言的不合法,而是对系统机制的违背,因此
指针引起的非法dereferencing都表现为运行时的BUG,而编译器却无能为力。因此,保证指针变量的值指向的是合法的地址空间就成了C程序员
的责任,如指向其它的变量、函数或用malloc显示分配。这也成了C语言中最大的错误源泉。
从上面的描述不难看出,当使用指针的时候一定要注意两个存储空间:指针变量自己的存储空间(固定大小,相对同一系统而言)和指针指向
的地址空间(由指针变量的值决定)。只要这两个空间都是合法的,程序的BUG会少许多。
关于C语言指针与数组的关系,这里没有提及,因为只要理解了指针,其关系简单得很。
另外,只是对一个帖子的简单回复,所以没有涉及更多。关于C语言的指针,有一本书专门论述,好像有600多页,我没看过,不知会论述到什
么程度。
复制代码
作者:
odin_free
时间:
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。 发表主题: 请教几个模糊的概念!!动态编连,动态静态编译,等等
请教几个模糊的概念!!动态编连,动态静态编译,等等
好想程序编译的时候有动态和静态编译一说吧
好像是跟库文件的联接问题
还有动态连编和静态连编(还是编连阿)
复制代码
这个问题涉及的东西很多,不过概念的清晰只要搞清楚他们之间
的差别就没有问题了,静态库是档案库,他是若干目标文件的集合,
在联编时,编译器抽取需要的目标文件连接到你需要的可执行文件中,
而动态库则不然,在你的可执行文件中不存在库代码,而只给出一个
函数的入口条目,在执行时系统为你自动连接对应的库,这里如果单纯
讨论性能的优略不是太有意义,关键是如果库代码有所改变,对于
程序发行更方便,也就是说,如果你的改变仅限于库代码,那你只需要
更新对应的库文件就可以了,当然你要保证调用时的入口参数没有
变化。
这里我给出一个有意义的建议,就是生成静态库时,要合理组织你的
目标文件(也就是 .o )除非有必要,否则不要把无关的函数集中在
一个源文件中。
复制代码
作者:
odin_free
时间:
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)请大家帮忙看一下。以下是我写的有问题的程序,该怎样改。
#include<stdio.h>;
#include<unistd.h>;
void main()
{
execl( "/usr/bin/ftp",
"ftp -i -n",
"192.9.212.62",
"21",
// "root" /*用户名*/
// "root" /*密码*/
NULL);
}[code]
zhlei 答:[code]main(int argc,char **argv)
{
char buf[256];
FILE *fp;
fp=popen("ftp -inv *.*.*.*","w");
if(fp==NULL)
{
perror("popen");
exit(1);
}
fprintf(fp,"user *** ***\n");
fprintf(fp,"get mail.test\n");
pclose(fp);
printf("ok\n");
}
复制代码
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、第一种: if( 条件1 && 条件2 &&条件3 )
{...};
大多数编译程序,发现条件1为假,那么就判断完毕了。如果三个条件都为真,那么效率与三个的顺序和安排也有关系,例如最具有限制性的和
很少出现的,频繁出现的都会影响到这里的效率。
2、第二种: if (条件1)
if (条件2)
if (条件3)
{...}
以次判断,和第一个一样。如果三个条件都为真,那么效率与三个的顺序和安排也有关系。
如果第一个为假并且顺序安排和上面的一样的话,效率差不多一样。
我感觉应该第一种能快一些,不知道对不对
复制代码
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
#include <sys/stat.h>;
main()
{
struct stat sb;
fstat(fd,&sb);
文件长度=sb.st_size
...
}
复制代码
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就是文件的大小
作者:
odin_free
时间:
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
他就要个例子
作者:
odin_free
时间:
2003-07-28 22:59
标题:
C/C++ faq 7月24日 --7月28日
看见好多问题都难以分类,深为自己水平低下为耻
偶要加油了
作者:
小飞爱使申华
时间:
2003-07-28 23:05
标题:
C/C++ faq 7月24日 --7月28日
哗哗哗!掌声鼓励。很不错了,我都不敢接这单活,怕搅浑了。
作者:
无双
时间:
2003-07-28 23:28
标题:
C/C++ faq 7月24日 --7月28日
很不错
另外这只是一个锻炼
还有就是也不用把每个问题都写出来 只要把自己认为有用的 比较重要的答案写出来就可以了
odin_free 祝你早日成功 明天我会接着你今天整理后的继续
作者:
li2002
时间:
2003-07-28 23:58
标题:
C/C++ faq 7月24日 --7月28日
鼓掌!!严重支持!!!
作者:
蓝色键盘
时间:
2003-07-29 13:53
标题:
C/C++ faq 7月24日 --7月28日
odin_free, 这样详细的整理,用不了半年的时间,相信你的视野要比我的开阔的多。你会在不知不觉中成长和提高的。
在此感谢odin_free朋友精彩的整理。
也希望你能在这里学习到更多的东西。
作者:
Hotown
时间:
2003-07-29 18:07
标题:
C/C++ faq 7月24日 --7月28日
ok!
不错!
作者:
odin_free
时间:
2003-07-29 20:25
标题:
C/C++ faq 7月24日 --7月28日
偶感觉论坛里很能开阔知识面,涉及很多自己见也没见过的问题,学习中,而且看到很多基本问题也能在自己写程序中多留意,很好的锻炼,唯一的不足就是水平有限,有的问题有人回答了,偶查了半天都不知道是不是正确回答,还好友无双和蓝色键盘各位老大会再次对我的帖子整理,偶也不太担心整理出来误导别人了。
再次感谢各位的支持,整理的东西大家如果能用上就更好了
作者:
odin_free
时间:
2003-07-29 20:26
标题:
C/C++ faq 7月24日 --7月28日
蓝色键盘老大,偶的水平1年2年是赶不上您了~
作者:
无双
时间:
2003-07-29 20:26
标题:
C/C++ faq 7月24日 --7月28日
ok
那这周的你来整理了
我找个时间把它们加到FAQ中去
再整理一下FAQ
作者:
odin_free
时间:
2003-07-29 20:43
标题:
C/C++ faq 7月24日 --7月28日
原帖由 "无双" 发表:
ok
那这周的你来整理了
我找个时间把它们加到FAQ中去
再整理一下FAQ
ok
无双老大下放机会真快~~
作者:
无双
时间:
2003-07-29 20:46
标题:
C/C++ faq 7月24日 --7月28日
我怕影响你工作
作者:
fls
时间:
2003-07-29 21:27
标题:
C/C++ faq 7月24日 --7月28日
up一下
作者:
clion
时间:
2003-07-29 21:43
标题:
C/C++ faq 7月24日 --7月28日
看到我的简单问题居然被odin_free整理列举出来,偶感到特别荣幸和感激,同时也为论坛里有这么多的热心人而高兴,谢谢odin_free,谢谢大家的帮助!
作者:
odin_free
时间:
2003-07-29 21:54
标题:
C/C++ faq 7月24日 --7月28日
[quote]
原帖由 "clion"]看到我的简单问题居然被odin_free整理列举出来,偶感到特别荣幸和感激,同时也为论坛里有这么多的热心人而高兴,谢谢odin_free,谢谢大家的帮助![/quote 发表:
问题简单 多数都会遇见
到了复杂的倒是不是每个人都能遇到了
所以我一直感觉论坛里多总结简单问题,帮助新手能少问几个问题,
那么大家都能更快地走入更高的水平,集中精力学习更复杂的知识,多好
更希望你和所有来这里的朋友多看看faq,多搜索,学会自己解决问题,也能很快去帮助别人。
作者:
weven
时间:
2004-04-14 20:58
标题:
C/C++ faq 7月24日 --7月28日
linux下编程如何计算每秒的打印输出(clock tick)数,应用库函数sysconf吗?可是具体怎么用呢?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2