
C语言
文章平均质量分 79
churehill123
这个作者很懒,什么都没留下…
展开
-
57 个让 C 编译器崩溃的代码
我不清楚你是否很高兴看到你的程序会让编译器崩溃的情况,反正我很喜欢,相当于发现了编译器的 bug。本文列出 57 段代码以及相应的编译器版本和编译参数,在这个环境下对代码进行编译会导致编译器崩溃。C1 : Crashes Clang 2.6 at -O0:#pragma pack(1)struct S1 { int f0; char f2};struct {转载 2013-07-22 21:33:36 · 1119 阅读 · 0 评论 -
C99的新特性
C99出来很久了,好像现在还在谈论一个10多年前的标准显得有点过时。不过现实是:关于C99新增的特性,许多用C用了N年的人其实还都不清楚。而在一些能找到的相关文章里面,基本上都是一些对标准的简单翻译,看那种玩意还不如直接去翻标准。所以我主要从自己的使用体验的角度来分享一下我用C99的一些心得。这篇文章并非要做个大而全的C99相对C89的扩展列表,我只挑我自己觉得可能用上或者有必要说的来讨论转载 2013-07-22 13:17:15 · 1664 阅读 · 1 评论 -
位运算简介及实用技巧(一):基础篇
去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章。后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法。从今天起我就开始写这一系列位运算讲解文章,与其说是原来那篇文章的follow-up,不如说是一个remake。当然首先我还是从最基础的东西说起。什么是位运算? 程序中的所有数在计算机内存中都是转载 2013-08-03 23:12:16 · 729 阅读 · 0 评论 -
位运算简介及实用技巧(二):进阶篇(1)
===== 真正强的东西来了! =====二进制中的1有奇数个还是偶数个 我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var i,x,c:longint转载 2013-08-04 13:05:35 · 668 阅读 · 0 评论 -
最常被程序员们谎称读过的计算机书籍
马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读转载 2013-08-20 14:22:06 · 546 阅读 · 0 评论 -
memset详解 设置无穷大INF
memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法。常见的三种错误第一: 搞反了c 和 n的位置.转载 2013-08-11 17:19:26 · 2708 阅读 · 0 评论 -
位运算简介及实用技巧(三):进阶篇(2)
今天我们来看两个稍微复杂一点的例子。n皇后问题位运算版 n皇后问题是啥我就不说了吧,学编程的肯定都见过。下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛。初始时,upperlim:=(1 shl n)-1。主程序调用test(0,0,0)后sum的值就是n皇后总的解数。拿这个去交USACO,0.3s,暴爽。procedure test(row,ld,r转载 2013-08-30 09:48:50 · 818 阅读 · 0 评论 -
位运算简介及实用技巧(四):实战篇
下面分享的是我自己写的三个代码,里面有些题目也是我自己出的。这些代码都是在我的Pascal时代写的,恕不提供C语言了。代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和状态压缩DP方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。这一系列文章到这里就结束了,希望大家能有所收获。 Matrix67原创,转贴请转载 2013-08-30 09:53:47 · 656 阅读 · 0 评论 -
给int赋最小值问题
int n = -2147483648; 如此简单的一句代码,居然出现了警告?-2147483648是32位int类型可以存储的最小整型值,为什么会出项警告呢。在VC++6.0控制台程序下出现如下警告:warning C4146: unary minus operator applied to unsigned type, result still unsigned。在C转载 2013-11-07 09:46:29 · 1036 阅读 · 0 评论