typedef的用法

简单记一下typedef的用法。

typedef作用是为类型起一个别名,用法就像普通的定义变量时一样,前面加typedef 关键字。

简单的例子

typedef int INT;

这样INT就相当于int了。

常用的例子

typedef struct tagSomething
{
    int a;
    int b;
}Something, *pSomething

这样Something就相当于struct tagSomething{……}了,而pSomething就是struct tagSomething{……}* 了,也就是指向结构体的指针

比较复杂的例子

int *a[10] 这个是指针数组(10个元素的数组,[......]

继续阅读……

SOCKET 编程 select 模式

算是看《UNIX网络编程》相关部分的一点笔记。

select函数可以使进程通知内核对哪些描述符感兴趣,以及超时时长。
其函数原型为

#include <sys/select.h>
#include <sys/time.h>
int select (int maxfdp1, fd_set * readset, fd_set * writeset, \
       fd_set * exceptset, const struct timeval * timeout);

参数:
maxfdp1 最大描述符的个数,是要被测试的最大描述符加1(因为描述符是从0开始)

readset, writeset, exceptset 分别指定通知内核对读、写、异常条件描述符感兴趣。这三个参数都可以为空。如果只对读描述符感兴趣,其他两个参数为空即可。
这三个参数的每一个,都会指定一个或多个描述符,具体的实现封装在下面几个宏中
void FD_ZER[......]

继续阅读……

Linux 终端下音视频简单转换、合并等处理

本来是以前记的一点东西,就把它直接放这里来,继续保存下去。
通过 cue 文件对flac, ape 分轨

来自:

http://forum.ubuntu.org.cn/viewtopic.php?f=74&t=197495

需要flac,mac,shntool这三个工具

对cue索引的flac分轨:

shntool split -t “%n.%p-%t” -f example.cue -o flac example.flac -d output/

-d 指定分轨后的flac文件的输出目录,不指定的话在当前目录生成

-t 指定输出文件的文件名格式,%n是[......]

继续阅读……

指针数组和数组指针

指针数组和数组指针是比较让人绕的,面试的时候经常会碰到,实际应用当中,到也没见得多么重要。算是考察基础知识的一个途径吧。

在网上看到一篇讲指针数组和数组指针的文章,评论里说是“指针数组”和“数组指针”两个简化的词让人晕的,不过这两个词本身不让人晕吧,一个是元素是指针的数组,另一个是指向数组的指针。这样貌似好理解了,但是int *p[3]和int (*p)[3] 哪个是“元素为指针的数组”,哪个是“指向数组的指针”,还是不能就那么直接看出来啊。搞清楚的关键显然不在于两个词是否引起歧义、误解。
指针数组
int *p[3]

‘['符号的优先级大于取值运算符'*','*'运算符的结合[......]

继续阅读……