随笔分类 - Linux && C
C语言碰到的一些问题
摘要:1. gcc的__attribute__编译属性要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或 数据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联...
阅读全文
摘要:二维数组和指向指针的指针一道面试题引发的问题,首先要知道[]的优先级高于*,题目:char **p,a[6][8]; 问p=a是否会导致程序在以后出现问题?为什么?直接用程序说明:#includevoid main(){ char **p,a[6][8]; p = a; print...
阅读全文
摘要:volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在D...
阅读全文
摘要:1.test.c:59:5: warning: incompatible implicit declaration of built-in function ‘memset’ [enabled by default]添加头文件: #include, 解决。2.implicit declaration...
阅读全文
摘要:有两个数组a,b,大小都为n,数组元素的值任意整形数,无序;要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小。 当前数组a和数组b的和之差为 A = sum(a) - sum(b) a的第i个元素和b的第j个元素交换后,a和b的和之差为 A' = sum(a) - a[i]...
阅读全文
摘要:转载自:http://blog.csdn.net/xidianzhimeng/article/details/235412891 fopen函数原型:FILE * fopen(const char * path,const char * mode);返回值:文件顺利打开后,指向该流的文件指针就会被返...
阅读全文
摘要:今天在写一个代码,要把一帧的buffer读入到文件,因为有NEON和OpenCL两种不同的实现所以需要读取文件两次,代码如下: 1 FILE *file; 2 int i = 0; 3 INTER_BLOCK_SIZE_GPU_RS *block_size; 4 file = fop...
阅读全文
摘要:废话不多说,直接上错误代码:static void print_cpu_src(uint8_t * src,int stride){ int i,j; printf("Magnum cpu src addr == %p, stride ==%d:\n",&src,stride); ...
阅读全文
摘要:内存对齐,memory alignment.为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。内存对齐一般讲就是cpu access memory的效率(提高运行速度)和准确性(在一些条...
阅读全文
摘要:最近在看google vp9的代码的时候碰到:#define intra_pred_sized(type, size) \ void vp9_##type##_predictor_##size##x##size##_c(uint8_t *dst, \ ...
阅读全文