C
文章平均质量分 64
aweilark
aweilark
展开
-
几个不清楚的C语言概念
1、Switch最多能有多少个case,为什么,default放在前面会怎么样?2、const的很多种用法3、static的很多种用法4、break用法,在多重循环、if、switch、函数中是怎么跳出的,原理是什么?5、sizeof的用法,后面带括号,不带括号等,sizeof是操作符不是函数6、strlen、sizeof等求长度的差别7、运算符优先级、结合性8、main的argc和argv9、连原创 2008-06-01 23:42:00 · 516 阅读 · 0 评论 -
__cdecl
MSDN原话Place the __cdecl modifier before a variable or a function name. Because the C naming and calling conventions are the default, the only time you need to use __cdecl is when you have specifie原创 2008-09-17 22:42:00 · 2886 阅读 · 1 评论 -
objdump
因为计算机大都是采用哈佛结构,数据和指令分开存储的的程序组织形式,因此当我门编译,汇编,连接,(符号解吸,段的重定位)。而为了能让程序更好的被执行,最终生成的目标文件包含了足够多了信息生怕自己被歧视而不被执行。所以面对2进制的目标文件来说,我门是很难发现或者看到什么有用的信息,因此objdump这个工具的实际意义是多么的令人喜爱,只有当你要探索一个目标文件的组织形式的时候就能体会了 更多的转载 2013-04-24 15:42:18 · 739 阅读 · 0 评论 -
gcc产生的汇编代码
假设我们写了一个C代码文件 code.c包含下面代码:int accum = 0;int sum(int x, int y){ int t = x + y; accum += t; return t;}这是用echo命令输入源码的效果,简单的就是最好的:) 一、查看GCC生成的汇编代码在命转载 2013-04-24 15:57:45 · 900 阅读 · 0 评论 -
__asm__ __volatile__ GCC的内嵌汇编语法
__asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法这篇帖子由于没署作者名,所以我转的时候也没怎么署,但还是谢谢了。AT&T ASM Syntax1 Overview 开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Si转载 2013-04-24 15:13:54 · 589 阅读 · 0 评论 -
字节序
Linux判断系统字节序 题目:确定系统中的字节序是大端字节序还是小端字节序。 代码如下: #include stdio.h>typedef union{ unsigned short int value; unsigned char byte[2];}to;int main(in转载 2013-04-14 21:40:28 · 439 阅读 · 0 评论 -
透析C语言可变参数问题 (转)
转自:http://www.cnblogs.com/wangyonghui/archive/2010/07/12/1776068.html一、是什么我们学习C语言时最经常使用printf()函数,但我们很少了解其原型。其实printf()的参数就是可变参数,想想看,我们可以利用它打印出各种类型的数据。下面我们来看看它的原型:int printf( const char* format,转载 2013-04-07 14:25:37 · 602 阅读 · 0 评论 -
变参函数的实现(stone-csdn)
相对于固定参数的函数,变参函数的可用性无疑是更好的。我们最常用的变参函数包括scanf和printf。刚刚接触到变参函数的时候,我觉得这太神奇了,它并不知道我要输入什么类型的数据,要输入多少个数据,却能完美地处理。其实,可变参数机制实现起来是相当容易的(在stdarg.h的基础上),而且,它的作用并没有想象中的那么神奇。 可变参数机制并不能获取某次输入的所有参数的个数,也不能自转载 2009-08-15 23:39:00 · 520 阅读 · 0 评论 -
类型转换(转自Stone-CSDN)
隐式类型转换Boolean Conversions 译为bool转换。当指针、ints和浮点数被赋给一个bool变量时,非0值会隐式转换为true,0值会隐式转换为false。Integral Conversions 译为整型转换。当不同类型的ints之间相互赋值时,要遵循如下三条规则:1. 如果目的数据类型是signed,那么当源数据超过了目的数据类型转载 2009-08-15 23:37:00 · 471 阅读 · 0 评论 -
c/c++中内存区域划分大总结-转
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放转载 2009-05-25 22:25:00 · 421 阅读 · 0 评论 -
5分钟搞定内存字节对齐-转
写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧. /******************************分割线如果体系结构是不对齐的,A中的成员将会一个挨一个存储,从而sizeof(a)为11。显然对齐更浪费了空间。那么为什么要使用对齐呢?体系结构的对齐和不对齐,是在时间和空间转载 2009-05-25 22:28:00 · 466 阅读 · 0 评论 -
#pragma token-string
Syntax#pragma token-string#pragma 的token-string有下面这些alloc_textcommentinit_seg1optimizeauto_inlinecomponentinline_depthpackbss_segdata_seg原创 2008-09-17 22:27:00 · 976 阅读 · 0 评论 -
#pragma
MSDN原话Pragma DirectivesEach implementation of C and C++ supports some features unique to its host machine or operating system. Some programs, for instance, need to exercise precise control over th原创 2008-09-17 21:58:00 · 565 阅读 · 0 评论 -
C的一些问题
1、程序的编译、链接过程;程序的执行过程22、注释的处理过程:预处理器将注释处理为一个空格。举例:int x/*commnet*/y;编译出错3、几个标识符auto,register,volatile,const,continue,goto,typedef,union原创 2008-06-17 22:21:00 · 495 阅读 · 0 评论 -
C的一些问题
1、程序的编译、链接过程;程序的执行过程22、注释的处理过程:预处理器将注释处理为一个空格。举例:int x/*commnet*/y;编译出错3、几个标识符auto,register,volatile,const,continue,goto,typedef,union原创 2008-06-17 22:21:00 · 473 阅读 · 0 评论 -
运算符的优先级与结合律(从高到低排列)
St=====运算符的优先级与结合律(从高到低排列)===== 优先级 名称 符号 结合性1 数组下标 [] 左结合性1 函数调用 () 左结合性1 结构和联合的成员. ->转载 2013-05-02 22:44:37 · 3209 阅读 · 0 评论