C语言
文章平均质量分 89
黑帽子和猫
不要总当机会到来时,你才唏嘘“哎呀,那时我怎么怎么样就好。。。”,你已经错过很多次,记住这是最后一次
展开
-
<二>类型、运算符与表达式
字节长度short与 int类型至少得是16位,而long类型至少是为32位,且short类型不得低于int类型,而int类型不得长于long类型,限定符signed与 unsigned可用于限定于char类型或任何整型,若类型为n位,则unsigned 为0-2^n -1;而signed为-2^(n-1)-2^(n-1)-1;long、float、double类型可以表示高精度的浮点数,有关原创 2015-10-08 20:10:02 · 499 阅读 · 0 评论 -
利用libpng中的函数读写png文件
转载自 http://blog.csdn.net/liuchao35758600/article/details/7288822转载 2017-05-30 10:43:58 · 873 阅读 · 0 评论 -
do{}while(0)用途
http://www.cnblogs.com/lanxuezaipiao/p/3535674.html转载 2017-05-08 21:13:25 · 407 阅读 · 0 评论 -
有关stdint.h文件
Google C++编程规范的P25页有如下叙述: 按照posix标准,一般整型对应的*_t类型为:1字节 uint8_t2字节 uint16_t4字节 uint32_t8字节 uint64_tstdint.h文件如下/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation,转载 2017-04-29 15:39:49 · 5596 阅读 · 0 评论 -
关于CPU Cache:程序猿需要知道的那些
为什么要有CPU Cache随着工艺的提升最近几十年CPU的频率不断提升,而受制于制造工艺和成本限制,目前计算机的内存主要是DRAM并且在访问速度上没有质的突破。因此,CPU的处理速度和内存的访问速度差距越来越大,甚至可以达到上万倍。这种情况下传统的CPU通过FSB直连内存的方式显然就会因为内存访问的等待,导致计算资源大量闲置,降低CPU整体吞吐量。同时又由于内存数据访问的热点集中性,在CPU和内存转载 2017-03-03 15:43:09 · 517 阅读 · 0 评论 -
用异或来交换两个变量是错误的
用异或来交换变量是错误的翻转一个字符串,例如把 “12345” 变成 “54321”,这是一个最简单的不过的编码任务,即便是 C 语言初学者的也能毫不费力地写出类似如下的代码:// 版本一,用中间变量交换两个数,好代码void reverse_by_swap(char* str, int n){ char* begin = str; char* end = str + n - 1; w转载 2017-02-11 17:23:22 · 1578 阅读 · 0 评论 -
malloc、calloc、realloc的区别
(1)C语言跟内存分配方式<1>从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量. <2>在栈上创建 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.<3>从堆上分配,亦称动态转载 2017-02-09 09:28:51 · 288 阅读 · 0 评论 -
C和C++混合编译,extern"C"的用法
第一篇:转载于C和C++混合编译关于extern_C 通常,在C语言的头文件中经常可以看到类似下面这种形式的代码#ifdef __cplusplus extern "C" { #endif /**** some declaration or so *****/ #ifdef __cplusplus } #endif /* end of __cplusplus */转载 2017-02-05 14:22:00 · 23095 阅读 · 2 评论 -
巧用宏进行程序中的调试
转载的两篇是目前我见过很容易理解且也很详细的文章了转载巧用可变参数宏、编译器内置宏和printf输出调试信息前言:我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了转载 2016-12-14 14:27:41 · 858 阅读 · 0 评论 -
条件编译#ifdef的用法
这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部 分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2转载 2016-12-14 13:55:15 · 1068 阅读 · 0 评论 -
malloc、calloc、realloc的区别
(1)C语言跟内存分配方式<1>从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量. <2>在栈上创建 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.<3>从堆上分配,亦称动态转载 2016-12-07 18:16:43 · 349 阅读 · 0 评论 -
c++中的set_new_handler和new_handler
详细可参考 《effective c++》第三版 条款49:了解new_handler的行为相关链接:http://blogold.chinaunix.net/u/3374/showart_1849816.html当operator new申请一个内存失败的时候,它会进行如下的处理步骤: 1、如果存在客户指定的处理函数,则调用处理函数(new_handler),如果不存在则抛出一个异常。2转载 2016-12-06 17:41:59 · 349 阅读 · 0 评论 -
#if #ifndef #if defined等
#if的使用说明 #if的后面接的是表达式 #if (MAX==10)||(MAX==20) code… #endif 它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!) #if defined的使用 #if后面接的是一个宏。 #if defined (x) …c转载 2016-12-06 17:15:28 · 589 阅读 · 1 评论 -
C语言<四> 函数与程序结构
函数的基本知识如果函数定义中省略了返回值类型,则默认为int类型返回值:如果某个函数从一个地方返回时有返回值,而从另一个地方返回时没有返回值,该函数并不非法,但可能是一种出问题的征兆。程序的加载:不同系统中,保存多个源文件中的C程序的编译和加载机制是不同的,这里看下Unix系统,假设有三个函数分别存放在main.c getline.c strindex.c,则可以使用命令cc main.c g原创 2015-10-25 14:27:04 · 590 阅读 · 0 评论 -
<一> 导言
getchar()函数原型:int getchar(void) 一个简单的程序:#include <stdio.h>int main(void){ int c; while ((c=getchar()) != EOF) putchar(c); return 0;}其中(c=getchar())表达式的值为c为了解决区分有效输入和文件结束符,C语言采用E原创 2015-10-05 20:42:29 · 636 阅读 · 0 评论 -
C语言<三>-控制流
语句和程序块语句以”;” 结尾用一堆花括号”{“和”}”把一组声明括在一起就构成了一个复合语句,右括号用以结束程序块,其后不需要分号if-else、switch语句就说说switch语句吧,老不用,都快忘了 switch语句是一种多路判定语句,它测试表达式是否与一些常量整数值中的某一个值匹配,并执行相应的分支动作,形式如下switch (表达式){ case 常量表达式: 语句序列原创 2015-10-20 21:49:59 · 747 阅读 · 0 评论 -
注意头文件规则,避免链接错误:重定义(multiple defination)
转载自 http://blog.csdn.net/dakongyismile/article/details/50639118之前程序写太少了,导致一些就出错。 改!!!转载 2017-05-20 14:09:53 · 755 阅读 · 0 评论