- 博客(9)
- 收藏
- 关注
原创 以十六进制存储的文本文档正确读入内存的转化程序
/*约定:文本中十六进制的abcdef以大写方式出现;每个字节以2个字符表示,如0x2应写成0x02*/#include "stdio.h"#include #include #include int main(){ int i, j = 0; char tmp; unsigned char buf[128], buf2[128]; FILE *fp = fope
2007-12-04 18:21:00
826
转载 C语言中的宏处理
在C语言中使用宏,我们经常这么做,但是为什么使用宏,他可以做什么,我们或许只是一知半解,下面简单介绍如何在C语言中使用宏预处理器。#define语句 对于define语句,我们已经非常熟悉,一个宏定义语句,主要用途是定义符号常量,如: #define PI 3.14159 定义了圆周率PI 为3.14159,在以后用到3.1
2007-12-03 18:50:00
1441
1
原创 统计字符串中单词个数
经常会想起毕业时面试一家公司,到了最后一面,面官是成研所老总,本来以为不会面技术,谁知道又出了一道题述的题目,我折腾了半天,打了几个补丁才把所有情况考虑到,做是做出来了,可是那是相当的不爽。老总发话了,说,其实很简单,你找下降沿就可以了,大概思想如下:while(str[i] != && str[i+1] == ) { cnt++; i++;} 而
2007-12-03 18:44:00
491
原创 如何通过一个结构体成员变量的地址找到该结构体的首地址?
Linux内核代码里的一个宏(Linux内核里很多结构体之间是通过某一成员变量相互寻址的),感觉挺巧妙。大概意思是:#define get_addr(type, member, mem_addr) (type*)(mem_addr - &(((type*)0)->member)) typedef struct{int a;int b;int c;}test_t
2007-12-03 18:31:00
1431
原创 关于全局变量的若干细节
上次在网上偶遇一题,大致如下:假设str为在任何函数外申明的变量,分别指出以下str在何时初始化,存于何处,并画出其内存结构图:1) char str[] = "hello";2) char str[] = {h, e, l, l, o};3) char *str = "hello"; 4) const char str[] = "hello";明白
2007-12-02 18:04:00
997
原创 unsigned int varA mod 9
从节省mips角度实现以下功能:unsigned int varA, varB;1) varA = varB mod 8; //varA = varB&0xf2)varA = varB mod 9; //?网上见到过,不过一时想不起来了。。。
2007-12-02 17:44:00
316
原创 关于GCC汇编代码的几个寄存器解释
典型的基于PC的函数调用栈格式如下:push ebp mov ebp, esp sub esp, 4*3 ... mov esp, ebp pop ebp ret 解释:首先对于一个进程,栈平衡是必须的。在进入某进程的某个子函数的调用前,栈顶指针esp和栈
2007-12-02 17:31:00
952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人