Chinaunix首页 | 论坛 | 博客
  • 博客访问: 751495
  • 博文数量: 215
  • 博客积分: 291
  • 博客等级: 二等列兵
  • 技术积分: 1031
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-12 18:17
文章分类

全部博文(215)

文章存档

2016年(16)

2015年(16)

2014年(123)

2013年(60)

发布时间:2014-04-28 13:16:23

x86_64基本使用寄存器存储函数参数,寄存器不够才入栈;而i386将所有参数保存在栈上,通过gcc的扩展功能__attribute__((regparm()))即可实现部分参数的寄存器传递。 代码1234.........【阅读全文】

阅读(1390) | 评论(0) | 转发(0)

发布时间:2014-04-18 16:54:17

a[-1]= 这个是有意义的, 而且有这样用的代码比如我们都知道数组下表是从0开始的那假如我们想从1开始怎么办定义一个指针,指向a[-1]这个位置,#include <stdio.h>void main(){int a[] = {1,3,4};int *p = &a[-1];int i =0;for( i = 1; i <4; i++){printf("%d\n", p[i]);}}1。 因为数组并不检查下表.........【阅读全文】

阅读(535) | 评论(0) | 转发(0)

发布时间:2014-04-18 14:53:47

在大型C语言项目工程或者linux内核中我们都会经常见到两个FASTCALL和asmlinkage两个标识符(修饰符),那么它们各有什么不同呢?今天就给大家共同分享一下自己的心得.大家都知道在标准C系中函数的形参在实际传入参数的时候会涉及到参数存放的问题,那么这些参数存放在哪里呢? 有一定理论基础的朋友一定会肯定地回答:这.........【阅读全文】

阅读(600) | 评论(0) | 转发(0)

发布时间:2014-04-18 14:29:49

在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数.#include <stdio.h>#define paster( n ) printf( "token " #n" = %d\n ", token##n )int main( int argc, char * argv[] ){    int token9 = 10;  &.........【阅读全文】

阅读(363) | 评论(0) | 转发(0)

发布时间:2014-04-12 11:29:06

1d(十进制,下同)=1h(十六进制,下同),127d=7fh,255d=ffh。计算机的世界过于简单。在计算机里,没有负数和浮点数,数只有一种,就是整数,而且是无符号整数,而且还是有范围的。其他任何的数,都必须靠这一点点无符号整数来表示。我们都知道,计算机里面用二进制存储,那么,如果用n个二进制位来存储一个数的话,.........【阅读全文】

阅读(3878) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册