CodeMap

慎言笃行

导航

统计

随笔分类 - C之修炼

发现不一样的C世界
ARC下的内存管理(二)对象及成员的引用关系
摘要:ARC下的内存管理(二)对象及成员的引用关系程序清单2-1myObjStrong = [[MyObject alloc] init];myObjStrong.strStrong = [array objectAtIndex:5];myObjStrong.strWeak = [array objectAtIndex:6];__weak MyObject *myObjWeak; myObjWeak = myObjStrong;下面“释放”weak对象的strong成员:myObjWeak.strStrong = nil;考虑以下输出各是什么:NSLog(@"weak object' 阅读全文

posted @ 2013-06-08 23:42 wqlblogger 阅读 (256) | 评论 (0) 编辑

Objective-C ARC下的内存管理(一)
摘要:本文不做ARC的基础知识介绍,而是直接就ARC中使用的strong(__strong) 和 weak (__weak)关键字的作用做一个实际的分析,目标是分析在遇到didReceiveMemoryWarning(系统内存警告)时,如何有效的释放内存。 阅读全文

posted @ 2013-06-07 23:27 wqlblogger 阅读 (456) | 评论 (0) 编辑

国内计算机教学骗局1
摘要:getch();并非标准C中的函数,不存在C语言中。所以在使用的时候要注意程序的可移植性。国内C语言新手常常使用getch();来暂停程序且不知道此函数来源,建议使用getchar();而实际开发中,决不可使用该函数停止程序,若在调试状态,请使用调试工具的断点;嵌入式环境中使用条件语句判断并使用while(1){pringf("your error info sting");} 阅读全文

posted @ 2010-05-06 14:33 wqlblogger 阅读 (187) | 评论 (3) 编辑

编程隐喻:堆栈结构
摘要:堆栈就象54手*枪的弹夹,数据就是子弹,“入栈”操作(push)就是装弹,而最先被发射的子弹,永远是后被装入的子弹,这个发射的过程就是“出栈”(pop)。 阅读全文

posted @ 2010-05-03 14:59 wqlblogger 阅读 (153) | 评论 (1) 编辑

没有一种语言解决所有问题
摘要:如题。 阅读全文

posted @ 2010-02-25 09:46 wqlblogger 阅读 (106) | 评论 (0) 编辑

简而言之C语言:“char类型省空间”只是一个传说
摘要:机器字往往为16bit或32bit,内存地址最少为2字节(byte)对齐,一般为4字节,声明为char类型的变量或数组,编译器仍然按偶数对齐,无法对齐的字节则自动填充,所以声明为char类型(尤其是数组)不但达不到节省空间的目的,反而有字节对齐及地址运算错误的风险,在嵌入式编程中,应该被禁止。 阅读全文

posted @ 2010-01-26 14:19 wqlblogger 阅读 (248) | 评论 (2) 编辑

简而言之C语言:句柄是什么?
摘要:所谓句柄(handle),即指针(pointer),也见有含有地址(指针)的结构体,但几乎可以确定的是,称为句柄的东东都是为访问指针(或说是地址)而建的。 阅读全文

posted @ 2010-01-20 15:17 wqlblogger 阅读 (3891) | 评论 (0) 编辑

编程的“武林秘籍”
摘要:编程的武林秘籍,不是《XXXX宝典》、《XX核心编程》、《XXXXXX大师》、《XX专家》,只要找本《X语言编码手册》,逐条执行,最后能倒背如流,变成编程习惯,便成编程大师了。 阅读全文

posted @ 2010-01-13 14:25 wqlblogger 阅读 (153) | 评论 (0) 编辑

简而言之C语言:const声明
摘要:const声明最好用也是最有用的地方是用来声明函数的传入指针参数,此时该参数不可出现在“=”符号左侧。 阅读全文

posted @ 2009-12-22 16:25 wqlblogger 阅读 (111) | 评论 (1) 编辑

关于代码的些许感想
摘要:摘:1994年4月15日,关贸总协定乌拉圭回合各缔约方在马拉 签署了《与贸易有关的知识产权包括假冒商品贸易协议》(TRIPS),其第10条规定“计算机程序,无论是原始资料还是实物代码,应根据《伯尔尼公约》(1971)作为文学作品来保护。”另一方面,世界知识产权组织于1996年12月20日通过了《世界知识产权组织版权条约》,其第四条明确规定不论计算机程序表达方式或表达形式如何... 阅读全文

posted @ 2009-12-16 15:48 wqlblogger 阅读 (175) | 评论 (2) 编辑

Linux小白教程:查看当前Linux的发行版本、内核(kernel)版本
摘要:查看发行版本:方法一在终端中执行下列指令:cat /etc/issue可以查看当前正在运行的 Ubuntu 的版本号。其输出结果类似下面的内容:Ubuntu 7.04 \n \l方法二使用 lsb_release 命令也可以查看 Ubuntu 的版本号,与方法一相比,内容更为详细。执行指令如下:sudo lsb_release -a将输出结果:Distributor ID: UbuntuDescr... 阅读全文

posted @ 2009-12-15 16:41 wqlblogger 阅读 (1014) | 评论 (0) 编辑

Linux小白教程:shell下的无线网络配置
摘要:跋:不要问为什么在桌面系统大行其道的时候还要在shell(命令行)下配置网络,如果你有此疑问,请停止阅读本篇。$iwlist wlan0 scan ##列出有效的无线网络$iwconfig wlan0 essid <wireless network name> ## 连接没有设密码的无线网络$iwconfg wlan0 essid <wireless network name&g... 阅读全文

posted @ 2009-12-14 03:15 wqlblogger 阅读 (369) | 评论 (0) 编辑

林纳斯宣布开发linux时在帖子上发表的公开信(纪念)
摘要:Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is ... 阅读全文

posted @ 2009-09-19 18:11 wqlblogger 阅读 (82) | 评论 (2) 编辑

C结构体中的函数指针与函数
摘要:C结构体中的函数指针与函数1. 函数指针 一般的函数指针可以这么定义:int(*func)(int,int); 表示一个指向含有两个int参数并且返回值是int形式的任何一个函数指针. 假如存在这样的一个函数:int add2(int x,int y){return x+y;}那么在实际使用指针func时可以这样实现:func=&add2; //指针赋值,或者func=add2; add2... 阅读全文

posted @ 2008-12-13 15:08 wqlblogger 阅读 (3815) | 评论 (0) 编辑

代码就在那里
摘要:——引用某名言“因为山在那里”。 工具不是重点,操作系统不是重点,沟通标准是关键。 阅读全文

posted @ 2008-11-10 11:15 wqlblogger 阅读 (202) | 评论 (0) 编辑

[转]回车和换行
摘要:发现搞计算机这帮家伙居然连这点东西都没统一(||==) 阅读全文

posted @ 2008-06-12 16:38 wqlblogger 阅读 (535) | 评论 (3) 编辑

一日编程小悟
摘要:最绝的是一封咨询我们是否能为某国军队提供产品的... 阅读全文

posted @ 2008-06-10 21:24 wqlblogger 阅读 (368) | 评论 (3) 编辑

我爱源代码
摘要:×记得大学读书时有一兄弟,偏爱用server版的操作系统,当时不置可否,现在脑子里也偶尔冒出类似念头,仔细一想:这简直是自虐!这种想法和附庸风雅别无二致。×现在看见*.c的文件就兴奋,觉得纯C的源代码简直是世界上最可爱的文本了,源代码无需帮助手册,没有跳前跳后的超链接,自成一体,自我说明,只要能编译通过,就是浑然天成,有调用就有函数,有变量就有声明,自然和谐, 阅读全文

posted @ 2008-03-14 15:44 wqlblogger 阅读 (849) | 评论 (2) 编辑

【技术】【转】字节序问题--大端法小端法
摘要:一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big-Endian和Little-E... 阅读全文

posted @ 2008-01-25 12:43 wqlblogger 阅读 (6644) | 评论 (2) 编辑

[转]关于结构体成员内存对齐的问题
摘要:转载声明: www.eternity3.com.首先要明确什么是内存对齐问题。假设我们同时声明两个变量: 程序代码char a;short b; 如果我们用&(取地址符号)观察变量a, b的地址的话,我们会发现(以16位CPU为例):如果a的地址是0x0000,那么b的地址将会是0x0002或者是0x0004。那么就出现这样一个问题:0x0001这个地址没有被使用,那它干什么去了?答案就是它确实... 阅读全文

posted @ 2007-04-23 13:22 wqlblogger 阅读 (878) | 评论 (1) 编辑

谈谈最近的编程状态
摘要:最近终于正式开始了产品的开发,一直期待的事情终于到来时,难免那么小小的兴奋一下,而兴奋过后,却似乎发现自己能做的事情其实是有限的,一个劲地写着程序,却都是些摆不上场面的作品,而且极其零乱,一件事是由网上下载的工具,自制的小段程序,以及不可避免的手工修改完成的,而成品呢,只是另一个程序实现的开始。 做了无数的小程序,这是现在工作的一个现状,是否有计划是另一回事(目标程序的运行空... 阅读全文

posted @ 2007-03-18 00:55 wqlblogger 阅读 (309) | 评论 (2) 编辑

C++Builder 使用经验备忘[第一辑]
摘要:1.AnsiString是一种字符串类,声明时可直接用字符串初始化,也可用new分配空间。 2. AnsiString可用下标方式访问单个字符,如Str[n];但注意n的起始值为1,而不是传统数组的0。 阅读全文

posted @ 2007-03-15 16:17 wqlblogger 阅读 (182) | 评论 (1) 编辑

探索C++的秘密之详解extern "C"
摘要:时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C... 阅读全文

posted @ 2007-01-25 15:53 wqlblogger 阅读 (248) | 评论 (1) 编辑

volatile声明的初步理解
摘要:转摘声明:引至 http://www.laogu.com/wz_692.htm volatile的本意是“易变的” 由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如:static int i=0;int main(void){...while (1){if (i) dosomething();}}/* Interrupt service routine. */v... 阅读全文

posted @ 2007-01-20 15:25 wqlblogger 阅读 (216) | 评论 (1) 编辑

使用 typedef 抑制劣质代码
摘要:Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。 阅读全文

posted @ 2007-01-20 14:44 wqlblogger 阅读 (176) | 评论 (1) 编辑

sprintf详解
摘要:转摘声明:选自《CSDN 社区电子杂志——C/C++杂志》 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,定义如下:int sprintf( char *b... 阅读全文

posted @ 2007-01-09 10:40 wqlblogger 阅读 (15583) | 评论 (1) 编辑

[备忘]Printf和Scan函数使用细节大披露
摘要:Printf和Scan函数的使用方法一 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("", ); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输... 阅读全文

posted @ 2006-11-26 22:04 wqlblogger 阅读 (747) | 评论 (1) 编辑

神秘现象?多种情况比较
摘要:先看以下代码: 1#include 2#include 3 4 5 6int main() 7{ 8 int N = 0; 9int subValue = 0,MaxValue = 0;10 int iN = 0,jN = 0;11 int si,sj;12 int i,j;13 int ii,jj;14 15 16 int Matri... 阅读全文

posted @ 2006-11-26 21:37 wqlblogger 阅读 (76) | 评论 (0) 编辑

[网游计划第十一、十二天] 放弃才有出路
摘要:不得不放弃,第十一天,全天在做一道“简单题”,说是简单题,因为过程很明确:统计一个房间里所有电器的用电量,每个电器时开时关,由输入给定。 但是做了一整天,却离AC越来越远,开始是runtime erroe,逐段提交代码,发现是接受输入时的上限不够,这很奇怪,因为题目中说的是:(n #include int Devices[2001]; int on_off[201];int ma... 阅读全文

posted @ 2006-11-25 17:22 wqlblogger 阅读 (142) | 评论 (0) 编辑

[网游计划第九、十天]能力有限,做些小品
摘要:夜深了,前些天的疲惫一下缓不过来,也只能做些容易题跑个量了,越做越觉得算法是我所不足了,确实应该加强。 1188是道容易的题,主要是计数加排序: 阅读全文

posted @ 2006-11-23 23:36 wqlblogger 阅读 (108) | 评论 (2) 编辑

[备忘]一个二维数组的冒泡排序
摘要:对二维数组Map的第二列进行排序 int Map[100][2]; void BubbleSort(int low,int high){ int i,j,ii; int exchange; int Temp ; for(i = low;i =i;j--) { if(map[j+1][1] < map[j][1]) ... 阅读全文

posted @ 2006-11-23 23:03 wqlblogger 阅读 (716) | 评论 (2) 编辑

编程之道 The Tao Of Programming
摘要:Price Wang's programmer was coding software. His fingers danced upon the keyboard. The program compiled without an error message, and the program ran like a gentle wind. 编程大师编写软件时,手指在键盘上快速飞舞。程序编译时没有一条错误信息,程序运行起来就象一阵微风吹过。 Excellent!" the Price exclaimed, "Your technique is faultless!" “太精彩了!你的技巧已经无可挑剔了。” "Technique?" said the programmer, turning from his terminal, "What I follow is the Tao -- beyond all technique. When I first began to program I would see before me the w 阅读全文

posted @ 2006-11-23 20:10 wqlblogger 阅读 (258) | 评论 (0) 编辑

递归的实质
摘要:递归是利用系统的堆栈保存函数当中的局部变量来解决问题的 要转换成为非递归,两步工作 第一步 可以自己建立一个堆栈保存这些局部变量,替换系统栈;第二步把对递归的调用转变为循环处理就可以了。 阅读全文

posted @ 2006-11-23 10:50 wqlblogger 阅读 (217) | 评论 (4) 编辑

[网游计划第八天] 少一些固执,加一点坚持
摘要: 终于在凌晨两点多时将其AC(一次性哦) 阅读全文

posted @ 2006-11-21 20:24 wqlblogger 阅读 (137) | 评论 (0) 编辑

[网游计划第六、七天]压力好大,坚持很难
摘要:昨天是星期天吧?饭都没好好吃,对怎么度过的都开始模糊了。其实我没偷懒,还是做了题的,可惜,没AC的,被那些看似“短小精悍”给忽悠的不轻,一连陷入几个陷阱,最后在一道十秒题中不能自拔,于是没什么战果;今日随性看了道题,没想在快下班前来了灵感,一鼓作气AC了,结果不得不自己背自行车(下班太迟,公司大楼的车库被保安锁了): 是一道较实际的题,说的是小册子打印的页码安排,关键是找页... 阅读全文

posted @ 2006-11-20 21:26 wqlblogger 阅读 (69) | 评论 (0) 编辑

[备忘] 字符串倒序函数strrev
摘要:/*===================================(C) by WQL . 2006=====================================*/char* mystrrev(char* szT){ int i; int t; int j; int k; if ( !szT ) return ""; ... 阅读全文

posted @ 2006-11-19 17:31 wqlblogger 阅读 (430) | 评论 (2) 编辑

[网游计划第四、五天]网游公司的丑陋嘴脸+说明会
摘要:没想一晃已是第五天了,昨天干什么去了?无他,睡觉尔。睡得天昏地暗,一如宁波这两天的天气,一题都未做,甚至连VC也没打开,便睡,时间估计是八点未到,先是睡在躺椅上,冻醒后意犹未尽,摸到床上继续,直至今天的十一点多五、六分的样子。 今日,也只完成一题,如下: 其实,该题也是为了交待,匆匆忙忙做的,本意是想,字符串处理,简单快捷,没想刚提交就给我个“Compilation ... 阅读全文

posted @ 2006-11-19 01:04 wqlblogger 阅读 (134) | 评论 (2) 编辑

[网游计划第三天] 呃,遇上些麻烦
摘要:脑子已经开始犯糊了,耳边隐约想起老板关于“游戏不要玩过火”的警告。 其实现在已是凌晨0:20了,之所以这么晚(惨?),和昨天在blog里吹牛有一定关系,不过好在是完成了。 今天第一题是关于一个解决网络拥挤的排序算法,我用了最笨的模拟报数的算法,是硬生生debug出来的,10秒题居然一次通过(其实debug 次数为天文数字): 从反馈的时间看来似乎还行吧,不过算法是够笨的。... 阅读全文

posted @ 2006-11-16 23:13 wqlblogger 阅读 (97) | 评论 (1) 编辑

[网游计划第二天]:手顺导致?
摘要:正如某仁兄所说,今天上班实在是太闲了,早早到了办公室,啃了一上午书(PS:和编程无关),愣是没想出能做的事来,于是午饭小小休息后便“百无聊赖”地开始“网游”了,当然很不专心,期间还逛了逛CSDN论坛及某著名数码论坛,不排除我为以下发布的提交截图上的时间辩护的可能: 因为这是数字回文的题,范围不大,区区50000而已,转成二进制也不过16位而已,用最笨的逐位比较的办法解... 阅读全文

posted @ 2006-11-15 20:16 wqlblogger 阅读 (101) | 评论 (0) 编辑

[网游计划第一天]:不怎么顺利的开始
摘要:第一天,AC了两题,一点也不顺利,大概是手生了,不过如网游中的初级帐号一般,被人劈总是难免的。 这是第一道1049号题AC记录的截图: 提交 3次,第一次CE,去掉注释后WA,加“printf("END OF OUTPUT.\n"); ”后AC,手生的直接体现。 这是第二道1006号题AC记录的截图: 该题花了本人好些力气,主要是用例的缺少,自... 阅读全文

posted @ 2006-11-15 00:50 wqlblogger 阅读 (110) | 评论 (0) 编辑

我的网游计划:ACM 30天 60题
摘要:PS:小力语:工作太轻松、脑力负担太轻的后果 阅读全文

posted @ 2006-11-15 00:03 wqlblogger 阅读 (194) | 评论 (1) 编辑

程序员必须要有的自信
摘要:最近两次打击让我很是郁闷:一是翻出陈年旧题(ACM)做了个把小时却发现最基本的浮点运算即可;另一件是花了近一个下午调试程序,用尽编译手段(条件编译、改文件关系),最后却发现最根本的问题竟然是其中的一个函数声明没有加分号“;”。 介绍这两件小事,是想警告自己,对自己的水平应该要有信心,两件小事的共同点是忽略了常见问题,将问题扩大化、复杂化,其原因,我自认为是自信心不足,一有问题就以为是... 阅读全文

posted @ 2006-11-09 20:37 wqlblogger 阅读 (128) | 评论 (1) 编辑

[备忘]求两数最大公约,最小公倍数
摘要:求两数最大公约,最小公倍数 P120 6.1 输入两个正整数m和n, 求其最大公约数和最小公倍数. 用辗转相除法求最大公约数算法描述:m对n求余为a, 若a不等于0则 m 最小公倍数 = 两个数的积 / 最大公约数#include int main(){ int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*... 阅读全文

posted @ 2006-11-08 21:51 wqlblogger 阅读 (695) | 评论 (0) 编辑

[备忘]printf格式控制符的完整格式
摘要:printf格式控制符的完整格式 printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位... 阅读全文

posted @ 2006-11-08 20:39 wqlblogger 阅读 (3480) | 评论 (0) 编辑

完全Win32 Api编程
摘要:我终于完成了如下界面: ——WIN32 API生成的界面:简陋而可爱 简陋地可爱,完全用WIN32 API 生成,所有控件的坐标、大小是我在坐标纸上画完后手动输入电脑的,没有用任何可视化工具。 感觉用WIN32 API 编Windows程序还是挺有意思的,一来对Windows的消息机制有了最直观的理解,二来可以更好的理解可视化工具的实现基础,对优化程序有很大帮助。 不过,在这个... 阅读全文

posted @ 2006-09-20 23:25 wqlblogger 阅读 (953) | 评论 (4) 编辑

最佳学习方法
摘要:算是步入职场了吧,上班已有几个月之久,新置的办公桌椅几经改动,忽然发现桌面已然成为下面这个样子,按进化论的思路,现在这布局体现了一种适应,我也觉得这是一种很好的学习流程的样板:书籍(教材)离我最近,它是知识的来源,但显而易见,光纸上谈兵是没用的,所以键盘出现在其后,刚好离我2/3手臂的长度,是最适合操作的位置,通过它我将书本上的知识实际输入电脑,以求验证;显示器在最后,但其占据垂直视野,最... 阅读全文

posted @ 2006-09-18 11:15 wqlblogger 阅读 (143) | 评论 (0) 编辑

dos版数字连连看游戏首发
摘要:主要特点:1.极端简陋的用户界面及极不友好的交互方式。 ... 阅读全文

posted @ 2006-07-27 17:58 wqlblogger 阅读 (250) | 评论 (1) 编辑

现在开始收集:编程界菜鸟的“幽默语”
摘要:一直觉得刚会编程的人是很可爱的,经常像刚发育的小朋友一样,说话一本正经,却是谬论满天,经旁人指点,还“据理”力争。因此我萌生了一个想法,搜集网上这些小屁孩的经典语录,一一加以评说,以提供点笑料,二来也给自己扫扫盲(说不对了,我的“评语”就是您的笑料了 ),你可一定要歇斯底里的嘲笑我,明白吗?!!先来一则:我精通b/s,最讨厌c/s架构!评:C/S又称... 阅读全文

posted @ 2006-07-25 00:44 wqlblogger 阅读 (461) | 评论 (9) 编辑

发布一个简陋的公历转换农历小工具
摘要:对农历一窍不通,一研究才发现居然和月球运行规律有关,吓了一跳。 阅读全文

posted @ 2006-07-07 15:15 wqlblogger 阅读 (785) | 评论 (6) 编辑

C与对象?
摘要:对象是对有共同属性事物的抽象吗?C语言不能编写“面向对象”的程序吗? 阅读全文

posted @ 2006-07-04 12:51 wqlblogger 阅读 (146) | 评论 (1) 编辑

计算机文件的深入理解
摘要:文件只是资源管理器窗口中黄色“文件夹”下形形色色的图标么? 阅读全文

posted @ 2006-06-29 17:35 wqlblogger 阅读 (150) | 评论 (1) 编辑

指针无可替代
摘要:指针的历史确定了指针的地位,只要计算机系统结构没变,指针就无法替代。 阅读全文

posted @ 2006-06-22 15:48 wqlblogger 阅读 (159) | 评论 (1) 编辑

一道谁都会做,却让你想不到的程序题
摘要:简单的题目往往不简单,今天先介绍一例。 阅读全文

posted @ 2006-06-19 15:53 wqlblogger 阅读 (167) | 评论 (1) 编辑