随笔分类 -  C and C++

1 2 下一页

Records of the mistakes I have made in the learning of C&C++
#ifdef 和 #if defined 的区别 -- 转
摘要:#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如#if defined (AAA) && defined (BBB)xxxxxxxxx#endif#if defined (AAA) || VERSION > 12xxxxxxxxx#endif而#ifdef 就... 阅读全文

posted @ 2015-07-21 21:22 沉沉-_- 阅读(284) 评论(0) 推荐(0)

强制类型转换中的精度丢失
摘要:最近在写unix网络程序的时候,需要完成一个很简单的程序,将输入的十六进制数转成字符串形式的IP地址,代码如下: 1 /************************************************************************* 2 > File Name... 阅读全文

posted @ 2015-04-23 17:02 沉沉-_- 阅读(1781) 评论(0) 推荐(0)

C 语言函数参数只能传指针,不能传数组
摘要:今天被要求编写一个C/C++冒泡算法的程序,心想这还不是手到擒来的事儿,虽然最近都是用Javascript程序,很少写C/C++程序,但是好歹也用过那么多年的C语言; 首先想的是怎么让自己的代码看上去更高大上一点,怎么着也得能自动识别数组的长度吧:于是第一版程序如下,结果如下 看到结果,很是... 阅读全文

posted @ 2015-03-15 21:24 沉沉-_- 阅读(1466) 评论(0) 推荐(0)

select 函数小结 -- 转自百度知道
摘要:http://zhidao.baidu.com/link?url=UVTXeK4ncKmnwatGUW2deMFylNYBuur-zHmK3w53NXNRpgPbhld2WdkMD766nKl_6HjtW3t0tyB5kzFaQDHxha On Linux, select() modifies timeout to reflect the amount of time not slept; most other implementations do not do this. (POSIX.1-2001 permits either behavior.) This causes problems 阅读全文

posted @ 2014-02-24 22:30 沉沉-_- 阅读(245) 评论(0) 推荐(0)

C 语言中指针初始化为字符串常量 不可通过该指针修改其内容
摘要:1 char b[] = "hello";2 则“hello”存于栈中,因为定义的是一个数组。3 4 char *b = "hello";5 则"hello"存于静态存储区中,因为定义了一个字符串常量,并把它的地址赋给了b。6 如果此时在指针仍然指向静态存储区的情况下通过指针修改其指向的地方,则程序能通过编译,但运行时会报“segmention fault” 阅读全文

posted @ 2014-01-16 11:23 沉沉-_- 阅读(1881) 评论(0) 推荐(0)

fifo 上使用 select -- 转
摘要:http://www.outflux.net/blog/archives/2008/03/09/using-select-on-a-fifo/The right way to handle on-going input from file descriptors is to use select(). All readable events are flagged (one such event is “end of file”, which is indicated by a 0-sized read()). For example, if we’re reading from file d 阅读全文

posted @ 2013-11-21 22:40 沉沉-_- 阅读(1073) 评论(0) 推荐(0)

undefined reference to 'pthread_create'问题解决 -- 转
摘要:文章出处:http://blog.csdn.net/llqkk/article/details/2854558由于是Linux新手,所以现在才开始接触线程编程,照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'undefined reference to 'pthread_join'问题原因:pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_ 阅读全文

posted @ 2013-10-29 14:41 沉沉-_- 阅读(250) 评论(0) 推荐(0)

什么是EOF -- 转
摘要:转载地址:http://www.ruanyifeng.com/blog/2011/11/eof.html我学习C语言的时候,遇到的一个问题就是EOF。它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while ((c = fgetc(fp)) != EOF) { putchar (c); }很自然地,我就以为,每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符, 阅读全文

posted @ 2013-08-29 15:15 沉沉-_- 阅读(317) 评论(0) 推荐(0)

汇编文件后缀 .s 与 .S 转
摘要:http://www.cnblogs.com/IamEasy_Man/archive/2011/08/10/2134212.html一、大小写后缀的区别.s汇编语言源程序;汇编.S汇编语言源程序;预处理,汇编小写的s文件,在后期阶段不在进行预处理操作,所以我们不能在这里面写预处理的语句在里面大写的S文件,还会进行预处理、汇编等操作,所以我们可以在这里面加入预处理的命令二、编译的相关流程预处理(Pre-Processing)-->编译(Compiling)-->汇编(Assembling)-->链接(Linking)1、预处理器根据以字符#开头的命令(directives),修 阅读全文

posted @ 2013-06-13 15:21 沉沉-_- 阅读(1047) 评论(0) 推荐(0)

宏定义中的#,## -- 转自CSDN
摘要:1、在一个预处理器宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。(原文:When you put a # before an argument in a preprocessormacro, the preprocessor turns that argument into a character array. This,combined with the fact that character arrays with no intervening punctuation are concatenated into a single character array, all 阅读全文

posted @ 2012-11-27 14:52 沉沉-_- 阅读(735) 评论(0) 推荐(0)

C 语言中的有符号数和无符号数
摘要:首先看一段程序:View Code 1 #include "stdio.h" 2 3 int main(void) 4 { 5 if ( 1 > 2) 6 { 7 printf("1 > 2 \n"); 8 } 9 10 if (-1 > 2u)11 {12 printf("-1 > 2u \n");13 }14 15 if (-1 > 0u)16 {17 printf("-1 > 0u \n");18 }19 20 return 0;21 }上面为用VC... 阅读全文

posted @ 2012-10-08 22:42 沉沉-_- 阅读(642) 评论(0) 推荐(0)

GetWindowRect() 和 GetClientRect() 的区别
摘要:新建一个基于对话框的MFC的exe程序:删除对话框的所有按钮,并添加一个test按钮,添加一个Static控件,ID为IDC_STATIC:双击test按钮,在响应函数中添加以下代码:View Code 1 void CTestMapDlg::OnBtnTest() 2 { 3 // TODO: Add your control notification handler code here 4 CRect rect; 5 CString str; 6 7 CWnd* pStatic = (CWnd*) GetDlgItem(IDC_STATIC);... 阅读全文

posted @ 2012-10-08 17:42 沉沉-_- 阅读(1346) 评论(1) 推荐(0)

C语言中的常量
摘要:有这么一段C程序:View Code最终程序的结果大家很容易都能猜到,但是其中还有一点很有用的知识:0xFE是一个常量,最终翻译成汇编语言的时候是立即数,存放到寄存器中。这就说明这个常量占用一个字长,不足一个字长的高位最终被扩展为0. 依据这个原理我们可以写出不依赖具体机器的掩码程序。 1 #include <stdio.h> 2 3 int main() 4 { 5 char hex1 = 0xFE; 6 int hex2 = 0xFEFE; 7 8 char hex3 = hex1 & 0xFE; 9 int hex4 = hex2 & 0xFEFE;1... 阅读全文

posted @ 2012-09-19 10:15 沉沉-_- 阅读(301) 评论(0) 推荐(0)

转载 -- extern"C" 的用法解析
摘要:原文网址:http://www.cnblogs.com/rollenholt/archive/2012/03/20/2409046.htmlextern "C"的用法解析1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。2.从标准头 阅读全文

posted @ 2012-07-17 17:15 沉沉-_- 阅读(235) 评论(0) 推荐(0)

C 语言中赋值表达式的返回的逻辑值
摘要:我们知道,在C 语言中经常使用 诸如 if(表达式){} ,while (表达式) {}形式的判断语句,当表达式为真时执行 {} 中的函数体,但是当表达式为赋值表达式时怎么判断该表达式为真还是为假?或者当表达式为逗号表达式式又该怎么使用?记住一个原则:C语言赋值表达式所代表的值就是被赋值变量最终被赋予的值。以下测试代码可以证明以上观点:View Code 1 #include <stdio.h> 2 3 int main(int argc, const char *argv[]) 4 { 5 int i; 6 printf("the value is %d\n" 阅读全文

posted @ 2012-05-05 16:50 沉沉-_- 阅读(5585) 评论(0) 推荐(0)

C语言深入浅出可变参数函数的使用技巧(转)
摘要:http://hi.baidu.com/phps/blog/item/1fe5768d628c6112b21bba87.html深入浅出可变参数函数的使用技巧本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实 现和封装,最后是可能会出现的问题和避免措施。VA函数(variable argument function),参数个数可变函数,又称可变参数函数 。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数 ,用于输入输出时格式化字符串;exec*()系列函数,用于在程序中执行外部文件( main(int argc,char*a 阅读全文

posted @ 2012-04-18 20:54 沉沉-_- 阅读(362) 评论(0) 推荐(0)

void 指针 (转载)
摘要:Void 指针: Cpp代码 void*pointer_variable;void这是是作为一个关键字来使用。参考指针的定义和使用,我们知道所定义指针的数据类型同指针所指的数据类型是一致的。所分配给指针的地址也必须跟指针类型一样。例如:Cpp代码 inti;floatf;int*exf;float*test;thenexf=&i;int类型指针指向int变量的地址空间,所以是对的。如果写成:Cpp代码 exf=&f;这条语句就会产生错误。因为int类型的指针指向的是一块float变量的地址空间。同样,如果我们试图把float类型的指针指向一块int类型的地址空间,也是错误的,例 阅读全文

posted @ 2012-04-08 18:46 沉沉-_- 阅读(1325) 评论(0) 推荐(1)

怎么将一个类的成员函数作为指针传递给另一个类的成员函数
摘要:今天帮同学解决了一个问题,怎么把一个类的成员函数作为指针传递给另一个类的成员函数。以前只接触过C语言中的函数指针:#include <iostream.h>void add(int a,int b){cout<<"the value of add is "<<a+b<<endl;}void mul(int a,int b){cout<<"the value of multiple is "<<a*b<<endl;}/*void (*fun)(int,int)是要传入的函数 阅读全文

posted @ 2011-12-24 20:26 沉沉-_- 阅读(5327) 评论(0) 推荐(0)

C++中关于流的概念
摘要:怎么从键盘中读取一个整数并包括错误处理int a;while (cin.get(ch1)) { if (ch1=='\n') cout<<"input the right number:"; //第一次输入换行; else if (cin.get(ch2),ch2=='\n') { a=ch1-'0'; if (a>0 && a<10) break; else cout<<"input the right number:"; //一位数字输入错误; } e 阅读全文

posted @ 2011-12-15 21:00 沉沉-_- 阅读(328) 评论(0) 推荐(0)

C/C++一个容易犯的低级错误--分号引起的错误
摘要:error C2143: syntax error : missing '{' before 'PCH creation point'造成这个错误的原因是由于头文件中的函数声明遗漏了分号;百度一下其他原因要么是类的声明忘记加分号了,要么是使用了中文的分号;所以,碰到这种错误,一定要先去看看是不是哪个地方的分号错误。 阅读全文

posted @ 2011-10-30 17:00 沉沉-_- 阅读(640) 评论(0) 推荐(0)

1 2 下一页

导航