ffmpeg为何用c语言编译,FFmpeg音视频(二),C语言基本语法

基本语法

基本类型:short,int

指针:就是内存地址 :void ,char

数组:连续的存储空间

自定义类型:结构体

struct st

{

int a;

int b;

};

sst.a = 10 ;

枚举:

enum e_type

{

red=10,

green=20,

black=30

};

算数运算

类似java中的+-*/ %

if for 类似java

for (size_t a = 0; a < 50; a+=2)

{

printf("a=%d\n",a);

}

while

while (1)

{

printf("");

}

函数

#include

int sum(int a,int b){

return(a+b);

}

int main (int argc,char*argv[]){

int result ;

result = (sum(3,5)) ;

printf("resutlt=%d",result);

return 0;

}

文件

FILE* file;

char buf[1024] = {0,};

file = fopen("1.txt","a+");

fwrite("hello world!",1,13,file);

rewind(file);

fread(buf,1,26,file);

fclose(file);

指针本身运算,指针所指内容操作

栈空间所函数创建和释放,默认4M

堆空间

内存映射(一般用于数据库)

内存分配

void* mem = malloc(size);//一般在堆空间

释放内存(不释放的话,会泄露或者产生野指针)

free(mem);

函数指针:既函数的地址

int (*f)(int ,int );

编译

编译器:GCC/CLANG

命令

gcc/clang -g -O2 -o test.c -I... _L... _I

-g:输出调试信息

-O:对输出文件做指令优化

-o:输出文件

-I:指定头文件

—L:指定库文件位置

-l:指定使用哪个库

2.编译过程静态库并外部引入

预编译(将头文件和源代码放在一起,copy)

编译

链接,动态链接/静态链接(.O与其他库链接)

$ clang -g -c add.c

$ libtool -static -o libmylib.a add.o

$ ls -lat libmylib.a

$ clang -g -o testlib test.c -I . -L . -lmylib

$ ./testlib

如有疏漏,请指出不胜感激,如有问题可以通过如下方式联系我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值