易截截图软件、单文件、免安装、纯绿色、仅160KB

SD卡的写文件 以及 C中#符号

一  首先总结一下SD卡的写文件,需注意的事项如下:
1. FAT16 写的时候必须至少写一个扇区。
2. FAT表不能频繁的读写,否则会出错。申请新的一个簇时,直接在这个簇里面(即下一簇号)的写为0XFFFF。
3. FAT似乎必须转化成u16才能写。貌似是这样,具体没仔细看。
4. 获取新的索引簇的时候,直接从旧的索引簇的后面开始写新的索引簇号,并在新的索引簇号中写0XFFFF。
5. 写FAT1后要写FAT2。
6. 推荐几款很不错的工具:WinHex.exe。帮了我不少忙,可以将FAT里面的数据分析得一清二楚。
二  其次,这次遇到了一个符号 “##”,到网上查了很长时间,没有很明确的意思。
#     井号    
#     前端处理符号
出现这个符号的代码如下:
 #define P_EP(n) ((USB_EP_EVENT & (1 << (n))) ? USB_EndPoint##n : NULL)
/* USB Endpoint Events Callback Pointers */
void (* const USB_P_EP[16]) (U32 event) = {
P_EP(0),
P_EP(1),
P_EP(2),
P_EP(3),
P_EP(4),
P_EP(5),
P_EP(6),
P_EP(7),
P_EP(8),
P_EP(9),
P_EP(10),
P_EP(11),
P_EP(12),
P_EP(13),
P_EP(14),
P_EP(15),
};
/*
* USB Endpoint 1 Event Callback
* Called automatically on USB Endpoint 1 Event
* Parameter: event
*/
void USB_EndPoint1 (U32 event) {
}
/*
* USB Endpoint 2 Event Callback
* Called automatically on USB Endpoint 2 Event
* Parameter: event
*/
void USB_EndPoint2 (U32 event) {
switch (event) {
case USB_EVT_OUT:
MSC_BulkOut();
break;
case USB_EVT_IN:
MSC_BulkIn();
break;
}
}
其中的这句话 USB_EndPoint##n  , 刚开始没看懂,后来看懂了
比方说N是1的话,那么USB_EndPoint##n即表示函数USB_EndPoint1。
这种写法真是奇怪,等我搞明白后再来写。
三  备忘一些函数指针相关的东东
int *p;     p为指向整型量的指针变量
int *p[n];   p为指针数组,由n个指向整型量的指针元素组成。
int (*p)[n];  p为指向整型二维数组的指针变量,二维数组的列数为n
int *p()    p为返回指针值的函数,该指针指向整型量
int (*p)()   p为指向函数的指针,该函数返回整型量
int


相关文档:

c/c++输出汉字

1. 使用TCHAR类型,定义在tchar.h中
#include <tchar.h>
#include <stdio.h>
int main()
{
 TCHAR s[] = "你";
 printf("%s \n",s);
 return 0;
}
2.关于C++中文字符的处理
 
一 引入问题
代码 wchar_t a[3]=L”中国”,编译时出错,出错信息为:数组越界。但wchar_ ......

C中的细节,我确实不知道

下面说到的C语言中的知识,我只是在工作中经常见到或用到,但从未深究为什么,今天才却道原来简简单单下面孕育这无穷的知识点和我的盲点,是该边学习边记录了。
预处理器(Preprocessor)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
         #define ......

s3c2410 RTC驱动框架linux内核源码分析

实在无聊中就将原来的一些东西整理了一下,自己是个记性不好的人,隔断时间整理自己,同时也希望可以方便他人。
----------------------------------------------------------------------------------------------------------------------------------------
/**//*************************************************** ......

标准c(c89,c99)原来不支持缺省参数

编译一个图象接口库,其中用到cvSaveImage( out_img_name, img); 编译报错:
too few arguments to function cvSaveImage
一下子就糊涂了,从来都是这么用 cvSaveImage 的。highgui.h里的函数原型也是定义了缺省的,
CVAPI(int) cvSaveImage(const char*  filename, const CvArr* image, const int* params CV_DEFA ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号