编程小技巧
在编程工程中,积累的一些小技巧:
1.使用pow(x,y)函数,编译是需要添加-lm选项,这是要指定链接的库
是不是所有添加了#include <math.h>的头文件的程序,都需要加-lm,还不清楚
2.如何构建[a,b]之间的随机数
int rand(void)函数可以返回一个[0,RAND_MAX]之间的随机数
将[a,b]的范围平移至[0,a-b],此时,利用rand()/a-b,可以得到一个
[0,a-b]之间的随机数,然后加上a,就可以了。
这仅仅是我的一个很简单的猜想,如果a-b是素数,那么随机性会比较好,如果
不是,则随机性很差。
3.在平时编程的过程中,尽量不是使用幻数,养成这样的好习惯,同时也增强代码
的移植性。(不要让人一眼看出来是菜鸟)
4.在执行程序时,重定向问题,例如./a.out 1>/dev/null将默认的输出重定向到
“黑洞”中,这时在">"符号的两边不要添加空格,因为不添加空格,那么agrc为1,
如果添加了空格,虽然也能重定向,但是argc的数目,已经argv字符数组都会变化。
这个和main函数的设计有关。
5.学会shell脚本和Makefile,至少会写简单的。
6.对MID的外围IC的驱动要基本了解,例如tp,camera,codec,gsensor,wifi,lcd,pmu等
7.对linux中的基本架构,ALSA,Camif等要了解。
在编程工程中,积累的一些小技巧:
1.使用pow(x,y)函数,编译是需要添加-lm选项,这是要指定链接的库
是不是所有添加了#include <math.h>的头文件的程序,都需要加-lm,还不清楚
2.如何构建[a,b]之间的随机数
int rand(void)函数可以返回一个[0,RAND_MAX]之间的随机数
将[a,b]的范围平移至[0,a-b],此时,利用rand()/a-b,可以得到一个
[0,a-b]之间的随机数,然后加上a,就可以了。
这仅仅是我的一个很简单的猜想,如果a-b是素数,那么随机性会比较好,如果
不是,则随机性很差。
3.在平时编程的过程中,尽量不是使用幻数,养成这样的好习惯,同时也增强代码
的移植性。(不要让人一眼看出来是菜鸟)
4.在执行程序时,重定向问题,例如./a.out 1>/dev/null将默认的输出重定向到
“黑洞”中,这时在">"符号的两边不要添加空格,因为不添加空格,那么agrc为1,
如果添加了空格,虽然也能重定向,但是argc的数目,已经argv字符数组都会变化。
这个和main函数的设计有关。
5.学会shell脚本和Makefile,至少会写简单的。
6.对MID的外围IC的驱动要基本了解,例如tp,camera,codec,gsensor,wifi,lcd,pmu等
7.对linux中的基本架构,ALSA,Camif等要了解。