
c
文章平均质量分 76
yang627468471
雄关漫道真如铁 而今迈步从头越
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式
分类: 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年转载 2013-11-29 16:49:21 · 877 阅读 · 0 评论 -
secure CRT 使用VIM 语法高亮
1.高亮显示需要配置vim /etc/vim/vimrc.local 文件 添加如下信息 syntax on 2. “ syntax on 删除注释: syntax on 随便打开个c程序看看是否成功,如果需要vim升级sudo apt-get vim3.在secure CRT高亮需要配置这样secure CRT搞定了结果原创 2014-04-14 14:58:53 · 2252 阅读 · 0 评论 -
linux chmod命令
令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 参数 : mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX转载 2014-03-07 14:01:54 · 916 阅读 · 0 评论 -
32位和64位系统区别及int字节数
一)64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。 什么是64位处理器?之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(C转载 2014-03-07 14:42:35 · 1431 阅读 · 0 评论 -
Linux进程状态(ps stat)之R、S、D、T、Z、X
Linux进程状态(ps stat)之R、S、D、T、Z、X2012 年 03 月 11 日Posted byJianLinux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状转载 2014-03-11 11:58:05 · 1146 阅读 · 0 评论 -
c access函数
int access(const char *filename, int amode); amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。 这个函数还可以检查其它文件属性: 06 检查读写权限 04 检查读权限 02 检查写权限 01 检查执行权限 00 检查文件的存在性而转载 2014-03-11 11:19:09 · 849 阅读 · 0 评论 -
Make选项及makefile常用变量
Make命令可以带几种参数: 标志, 宏定义, 描述文件名和目标文件名, 标准形式为:Make [flags] [macro definitions] [targets] 在unix下, flags包含:-f file 指定file文件为描述文件. 如果file参数为"-", 描述文件指向标准输入, 如果没有"-f", 则系统默认当前目录下makefile或Ma转载 2014-02-16 22:11:45 · 718 阅读 · 0 评论 -
c语言中如何精确判断bool float是否等于零?
#include#includeint main(void){ float a=2.2; if(fabs(a)<=1e-6){ printf("yes"); }else { printf("no"); } return 0;}#include#includeint main(void){ bool bo=false; if(!bo){原创 2014-02-14 16:53:21 · 2981 阅读 · 0 评论 -
C语言内存分配问题和C语言中的内存
C语言内存分配问题1、C中内存分为四个区栈:用来存放函数的形参和函数内的局部变量。由编译器分配空间,在函数执行完后由编译器自动释放。 堆:用来存放由动态分配函数(如malloc)分配的空间。是由程序员自己手动分配的,并且必须由程序员使用free释放。如果忘记用free释放,会导致所分配的空间一直占着不放,导致内存泄露。 全局局:用来存放全局变量和静态变量。存在于程序的整个运行期转载 2014-02-14 12:13:35 · 791 阅读 · 0 评论 -
vim /etc/vim/vimrc.local
set nocp set ru set nu "set cin "set cino = :0g0t0(sus set sm set ai set sw=4 set ts=4 set noet set lbr set hls "set backspace = indent , eol , start "set whic原创 2014-04-14 14:34:07 · 1787 阅读 · 0 评论 -
使用 udev 高效、动态地管理 Linux 设备文件
本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅,这些用户包括 Linux 最终用户、设备驱动开发人员、设备测试人员和系统管理员等等。概述:Linux 用户常常会很难鉴别同一类型的转载 2014-04-02 10:33:09 · 847 阅读 · 0 评论 -
大端、小端、网络字节序
一、大端、小端"大端"和"小端"表示多字节值的哪一端存储在该值的起始地址处;小端存储在起始地址处,即是小端字节序;大端存储在起始地址处,即是大端字节序;或者说:1.小端法(Little-Endian)就是低位字节排放在内存的低地址端(即该值的起始地址),高位字节排放在内存的高地址端;2.大端法(Big-Endian)就是高位字节排放在内存的低地址端(即该值的起始地址),低位字节排放转载 2013-11-30 00:06:39 · 863 阅读 · 0 评论 -
open和fopen的区别:
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大转载 2015-04-20 14:07:20 · 651 阅读 · 0 评论 -
STM32 晶振不震动
刚拿到的新板子,把程序烧录进去,但是运行地址不对,没进入到c语言检查以下四种情况1.检查芯片电源是否全对 2.检查晶振线是否短路3.检查负载电容是否正确4.检查你的复位电路元件是否正确用示波器查看晶振没有反映出现的问题是复位电路不正确,切记boot0=0 keil调试模式必须这样设置再次用示波器检查,晶振震动了,程序也跳入到了c语言。原创 2014-08-12 17:41:18 · 2289 阅读 · 0 评论 -
warning: #223-D: function "assert_param" declared implicitly
硬件平台:STM32F205一点一点跟踪,发现大部分的头文件都包含在stm32f10x_conf.h中,而这个文件又出现在stm32f10x.h中,其中有这样的一段:#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h" #endif原来是这个USE_STDPERIPH_DRIVER没有被定义,stm3原创 2014-05-28 11:21:21 · 10376 阅读 · 1 评论 -
ARM中的RO、RW和ZI DATA
一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保转载 2014-05-27 14:27:25 · 721 阅读 · 0 评论 -
RTX_Config.c 宏定义详解
任务:#define OS_TASKCNT 6 /*处于活动状态的最大任务数*/#define OS_PRIVCNT 0 /*是否可以用户自定义任务*/堆栈:#define OS_STKSIZE 50 /*默认的堆栈大小*/#define OS_STKCHECK 1原创 2014-04-19 11:49:26 · 4487 阅读 · 0 评论 -
keil RTX TCP/UDP 报错
.\Obj\HST3GSTM32F205.axf: Error: L6218E: Undefined symbol get_host_by_name (referred from neti_tcpip.o)..\Obj\HST3GSTM32F205.axf: Error: L6218E: Undefined symbol tcp_abort (referred from neti_tcpip.原创 2014-06-05 09:34:58 · 2886 阅读 · 0 评论 -
linux下串口通讯参数设置
6.7.2 设置串口通信参数串口通信参数指的是波特率、数据位、奇偶校验位和停止位。对串口实现控制的时候同样要用到termio结构体。下面将结合具体的代码说明如何设置这些参数。1.波特率设置获得端口波特率信息是通过cfgetispeed函数和cfgetospeed函数来实现的。cfgetispeed函数用于获得结构体termios_p中的输入波特率信息,而cfgetospeed函数用于获转载 2014-04-11 15:10:54 · 1289 阅读 · 0 评论 -
c语言 数列1,1,2,3,5,8,13,21,34...求第n项
1.第一种用循环#includeint main(void){ int array[100]={1,1}; int i=0; int n=30; for(i=2;i<n+2;i++){ array[i]=array[i-1]+array[i-2]; } printf("arr[%d] = %d\n", n, array[n-1]); return 0原创 2013-11-30 08:47:21 · 17815 阅读 · 1 评论 -
c语言素数判断
#include<stdio.h>#include <math.h>void main(){ int n,i,k; printf("输入大于等于2的整数:n\n"); scanf("%d",&n); k = (int )sqrt(n); for(i = 2; i <= k;i++) if(n % i == 0) break; if(i > k) printf("素数\n"); else printf("不是素数\n"原创 2013-11-30 09:17:08 · 1432 阅读 · 3 评论 -
C/C++中存储类型修饰符的区别(auto、static、register、extern、volatile、restrict)
一、局部变量和全局变量:(1)局部变量:局部变量也叫自动变量,它声明在函数开始,生存于栈,它的生命随着函数的返回而结束。[cpp] view plaincopyprint?#include int main(void) { auto int i = 9; "white-space:pre"> //转载 2014-02-11 10:47:47 · 898 阅读 · 0 评论 -
求深圳龙华富士康面试题
下周一去龙华富士康去面试,跪求面试题啊,要不要去面试,给点意见啊原创 2013-11-30 15:58:10 · 4803 阅读 · 2 评论 -
c语言冒泡排序
#include#includeint main(void) { int bubble[6]={6,2,3,4,1,9}; int temp,i,j; for(i=0;i<6-1;i++){ for(j=0;j<6-i-1;j++){ if(bubble[j]>bubble[j+1]){//大数的排在后面,如果要大数排在前面改成‘<’就OK temp=bubb原创 2013-11-30 09:44:40 · 927 阅读 · 0 评论 -
比较全面的gdb调试命令
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更转载 2013-12-06 14:31:19 · 833 阅读 · 0 评论 -
c语言strcmp实现
#includeint strcmp(const char *str1,const char *str2){ int temp; while(!(temp=*str1++-*str2++)&&*str1!='\0'); if(temp<0) return -1; else if(temp>0) return 1; return temp;}int main(void原创 2013-11-29 21:50:35 · 920 阅读 · 0 评论 -
c语言数字转字符串
#includeint main(void){ int num=123456; char strNum[6]; int i=sizeof(strNum)-1; int j=sizeof(strNum); while(num){ strNum[i--]=num%10+'0';//数字转字符串+ASCII嘛48strNum[i--]=num%10+48;原创 2013-11-29 21:35:06 · 959 阅读 · 0 评论 -
c语言字符转换成数字
#includeint main(void){ char str[6]="123456"; int i=0,j=0; char temp[6]; int num=0; for(i=0;i<str[i]!='\0';i++){ if(str[i]>='0'&&str[i]<='9'){ temp[j++]=str[i]; } } i=0; while(i<原创 2013-11-29 20:49:44 · 11100 阅读 · 0 评论 -
c语言两个数交换
以下两个数交换方式是以宏的方式呈现,写了两种方式#include#define SWAP(a,b) {a=a+b;b=a-b;a=a-b;}int main(void){ int a=2,b=3; SWAP(a,b); printf("a=%d,b=%d\n",a,b); return 0;}#include#define SWAP(a,b)原创 2013-11-29 20:56:51 · 950 阅读 · 0 评论 -
ASCII码表
ASCII码表信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。 八进制转载 2013-11-29 20:31:58 · 873 阅读 · 0 评论 -
c语言递归求n的阶乘
1.用循环#includeint main(){ int i,n,sum=1; scanf("%d",&n); for(i=1;i<=n;i++) { sum*=i; } printf("%d!=%d",n,sum); getch(); return 0;}2.用递归#includeint factorial(int n){ if(n==0)原创 2013-11-30 09:03:37 · 10907 阅读 · 1 评论 -
c语言手算开方 以及C开方,C计算正切值
手算开方是我们初中时期就学习的知识,以前学习过现在复习下。以√200 为列一般我们以前得出的结论是:10 √2如今以C为列,不可能显示这样的方式,所以要有详细的计算方式,如下:以个位开始两为为一个断,200=2,00,后面有小数点的部分没计算一位曾加两个01.用除法运算,以一个数的平方为主,1*1=1,2*2=4,把200中的2提取出来进行计算,12.拿出两个零则被除数为1原创 2013-12-02 11:24:59 · 2482 阅读 · 0 评论 -
linux sudo apt-get update 出错
Ign file: apt_packages/ Release.gpgIgn file: apt_packages/ Translation-en_US Ign file: apt_packages/ Release Ign file:原创 2013-12-02 11:21:52 · 2531 阅读 · 0 评论 -
信号量PV操作
在计算机操作系统中,PV操作是进程管理中的难点。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1;转载 2013-12-30 12:10:15 · 1034 阅读 · 0 评论 -
c语言strcat实现
#includechar *my_strcat(char *str1, char *str2){ char *pt = str1; if((str1==NULL)||(str2==NULL)) puts("is null"); while(*str1!='\0') str1++; while(*str2!='\0') *str1++ = *str2++; *str1 = '\原创 2013-11-29 22:49:28 · 775 阅读 · 0 评论 -
c语言strcpy实现
#includechar * my_strcpy(char *dest, const char *src){ char *ptemp = dest; while((*(ptemp ++) = *(src++)) !='\0' ); return ptemp;}int main(void){ char dest[20]; char *src = "Hello"; my_s原创 2013-11-29 22:48:27 · 737 阅读 · 0 评论 -
Linux字符设备与块设备的区别与比较
Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。(2) 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上的任何位转载 2013-12-01 15:43:42 · 873 阅读 · 1 评论 -
C语言 十进制转换成二进制转换方法,以及指定位反转
#include char * itbs(int n,char * ps);void show_bstr(char * str);int inver_end(int number,int bits);void main(){ char bin_str[8*sizeof(int)+1]; int number; while((scanf("%d",&number))=原创 2013-12-02 11:28:06 · 1731 阅读 · 0 评论 -
linux 下载tftp报错 缺少库文件libssl0.9.8
执行命令sudo apt-get install tftp tftpd 安装tftp就报错,其实报这个错误,安装什么都是安装不成功的,安装vim ,samba也是如此,纠结了半天就是不知道咋回事啊vsftpd : Depends: libssl0.9.8 (>= 0.9.8m-1) but it is not going to be installedE: Unmet dependenci原创 2013-12-02 11:23:01 · 3961 阅读 · 1 评论 -
VC 6.0 常用快捷键
F1 显示帮助,如果光标停在代码的某个字符上,显示MSDN中相应的帮助内容F2 书签功能: Ctrl+F2 --在某行设置一个书签(再按一次次是取消)F2 --跳到下一个书签位置Shift+F2 --跳到上一个书签位置Ctrl+Shift+F2 --删除所有书签F3 查找: Ctrl+F3 --在文件中查找,如果当前光标在一个字符串上,那么自动查找此字符串.相似的有Ctrl原创 2013-12-02 11:26:39 · 958 阅读 · 0 评论