- 博客(38)
- 资源 (13)
- 收藏
- 关注

原创 如何学好C语言
今天在论坛上看到这个话题,剪了一些我认为比较好的回答,大家也看看,希望也能够从中受益吧!有挺多回答提到LINUX,顺便问问各位,为什么学好C要在LINUX平台下比较好呢? 1. 去看C89,C992. 很多开源的知名项目都是C写的呀。可以看看人家的代码。可以按兴趣爱好找相关开源项目。3. 看国外的书,英文版的the c progr
2011-12-11 21:40:51
2055

转载 程序员不成熟的特征
人成熟与不成熟跟年龄没有关系,人成熟不成熟,就是你能不能站在对方的角度去看待事物。就是能不能把我的世界变成你的世界。这个社会有很多的成年人,还没有脱离幼稚的行为。一点小事情就跟别人争来争去。人不成熟的第一个特征------就是立即要回报 他不懂得只有春天播种,秋天才会收获。很多人在做任何事情的时候,刚刚付出一点点,马上就要得到回报。(学钢琴,学英语等等,刚开始就觉得难,发现不行,立即
2011-12-07 22:46:55
561

转载 为什么选择VC
选择什么样的工具的前提是你的开发目标,如果你希望开发一个很大的系统你就不应该选择面向基于界面开发的工具,但你可能会选择VB来开发前端的客户软件,而后台使用VC来实现。对于一些并不是很复杂的软件来讲,界面和操作方式可能是非常重要的,所以选择VB,CBC都可以缩短开发时间。这时候选择VC就有些不智。如果说到indows下的可视化开发工具现在大家接触得最多的就是VC,VB,DELPHI,BCB,一些可视
2011-12-06 20:15:08
970
原创 strcat(),strcpy()函数的注意点
Strcat()函数的注意点:大部分的人可能只记得strcat函数可以连接2个字符串,但是没注意到以下问题。Char *a=”abcd”;Char b[5]=”abcd”;Strcat(a,b);这样可以吗? Char a[]=”abcd”;Char b[5]=”abcd”;Strcat(a,b);这样可以吗? Char a[5]=”abcd”;
2012-05-16 00:08:27
4159
原创 c,c++头文件
C、传统 C++#include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include
2012-02-10 09:43:09
730
原创 EOF与feof()函数关系
在 C语言,或更精确地说成 C标准函式库中表示:文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。 C语言中,当把数据以二进制形式存放到文件中时,就会有-
2011-12-27 14:27:26
824
原创 rand()产生随机数
#include #include #include int main(void){ int m, n; time_t t; srand((unsigned) time(&t));//srand函数是随机数发生器的初始化函数,不用的话每次产生同样的随机数 m = rand();//产生0-2^16的整数 n = rand()%10;
2011-12-25 19:19:21
4763
原创 ARM11——点亮LED灯
首先你得有三星公司提供的startup.s文件,用来初始化并通过跳转进入main()函数使用软件:ADS1.2使用JLINK调试 //使用加入头文件,//以下头文件中包含了6410的寄存器的定义#include "s3c6410_addr.h"//#include "utils.h" //用来使用Uart_Printf函数 //配置LED灯亮暗的数据
2011-12-23 17:19:23
1958
原创 C语言专题——从键盘输入一个字符或功能键并判断
/*通过getch()从键盘输入一个字符要点:1、需要在英文模式下输入2、该函数每次只能输入一个值3、当读取功能键和方向键时,getch 需要被调用2次,第1次返回0或0xE0,第2次返回实际的键值4、不能用来读取:CTRL+break*/程序举例:#include #include int main(){ int c; while(
2011-12-20 19:25:05
15638
1
原创 C语言专题——getchar()与getch()的区别
getch:在windows平台下从控制台无回显地取一个字符,在linux下是有回显的。#include Getchar 从stdio流中读字符#include getchar 由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户
2011-12-20 00:02:10
1280
原创 C语言专题—10种数组的访问方式
/*数组的访问方式*/#includeint main(){int a[10]={0,1,2,3,4,5,6,7,8,9};int *p=a;printf("%d %d %d %d %d %d %d %d %d %d ",0[a],*(p+1),*(a+2),a[3],p[4],5[p],(&a[5])[1],1[(&a[6])],(&a[9])[-1],9[&a[
2011-12-18 21:58:40
1476
原创 LINUX学习笔记22——交叉工具链
交叉工具链1. 交叉编译:嵌入式系统开发采用交叉开发模式,是A机器上编译生成,运行在B机器上。两个机子有不同的机器指令。2. 工具链:可能指编译、汇编、链接等一整套工具。3. 作用:编译的程序才能在目标机上运行,用gcc编译的程序无法在目标机上运行。4. 安装a) 解压工具链到跟目录下tar xvz
2011-12-14 16:08:15
682
原创 LINUX学习笔记21——内核模块
(一) LINUX“内核模块”的开发:1. 如何使用需要的组件a) 把所有的组件都编译进内核文件: i. 缺陷1:内核文件过大
2011-12-14 11:41:48
1356
原创 C语言专题——Scanf()函数注意之处
Scanf()有以下几点需要值得注意1、 Scanf()函数中的格式控制后面应当是变量地址,而不应是变量名,记得&scanf("%d",&a); 2、 scanf(“%d%d%d”,&a,&b,&c);分隔符可以是空格,TAB键,ENTER键注意不能连着输入123,这样只会把数字赋给a,出错 3、 scanf(“%c%c%c”,&a,&b,&c);输入
2011-12-13 19:27:35
996
3
原创 LINUX学习笔记20—内核配置与编译
1. 清除临时文件,中间文件和配置文件:在顶层目录下执行a) Make clean:删除产生文件,保存配置文件b) Make mrproper:删除产生文件和配置文件c) Make distclean:删除mrproper+编辑文件和补丁文件2. 确定目标系统的软硬件配置情况:比如CPU的类型、网卡的型
2011-12-13 14:22:44
659
原创 LINUX学习笔记19——内核简介
LINUX内核简介:a) LINUX体系结构: i. 用户空间:应用程序,C库 ii. 内核空间:系统调用接口,内核,体系结构相关的代码
2011-12-11 22:41:17
524
原创 工业相机的参数说明
工业相机选择的一些参数1. 工业相机:本质上是将光子信号转换为数字信号的设备,而这里所谓的数字信号就是图像。这些图像不一定非得看起来如何美轮美奂,在工业机器视觉领域,只需要相机尽可能精确的将光信号转换为电信号。 所以,工业相机不会美化它拍摄的画面, 同理,机器视觉领域也应尽量避免压缩图像。2. 数码相机:表现为胶卷,一种利用电子传感器把光学影像转换成电子数据
2011-12-09 22:39:15
7455
原创 C语言专题——sizeof()与strlen()的区别
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值。sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。 需要注意以下的区别:Char str[10];Str=”error”;
2011-12-09 00:07:07
818
原创 LINUX学习专题——alias,unalias使用,命令DIY
刚学LINUX的时候,发现切换目录特别麻烦,尤其是文件夹的位置还特别深的时候,敲个指令很麻烦,搞不好还出错了得重输。这个时候alias指令的作用就很突出了。例如:输入指令:alias class="cd /home/1/...class的实际目录.../6/class" 那么这个时候不管你在哪个文件夹,敲入class,就可以进入class的文件夹了,省去了敲入完整路径的功夫 然而,
2011-12-07 18:00:25
1016
原创 LINUX学习笔记18——网络编程
a) Socket:文件描述符1. 作用:实现LINUX的网络编程2. 分类:a) 留式套接字:使用TCP协议(SOCK_STREAM)安全性b) 数据报套接字:使用UDP协议(SOCK_DGRAM)快速c) 原始套接字:使用IP协议:(SOCK_RAW)3. 网
2011-12-06 21:08:54
597
原创 LINUX学习笔记17——多线程
1. 线程理论基础:a) 比进程更节俭:线程所有代码数据都是共享的b) 方便:因为数据共享,所以通信方便c) 遵循POSIX线程接口,称为pthread,需要#include 2. 创建线程:int pthread_create(pthread_t *tidp, const pthread_attr *
2011-12-06 21:06:47
344
原创 LINUX学习笔记16——进程间通信5信号量
a) 作用:保护临界资源,控制进程。访问临界资源时,先查看信号量,若信号量为1表示资源有空,那么才可以访问临界资源。同时把信号量-1;1. 实质:是一个整数,初始值为1;2. 二值信号灯:值只能取0或1;最多允许一个进程访问。3. 计数信号灯:值可以取任意的非负值,即可以允许多个进程访问b) 打开信号量
2011-12-06 21:05:22
416
原创 LINUX学习笔记15——进程间通信4消息队列
a) 本质:消息链表b) 分类:1. POSIX消息队列:可移植操作系统接口2. 系统V:随内核持续的,只有在内核重启和人工删除,才会被删除。每个消息队列对应唯一的键值c) 获取键值:Key_t ftok(char *pathname, char proj)1. 作用:返回文件名对应
2011-12-06 21:03:37
373
原创 LINUX学习笔记14——进程间通信3共享内存
a) 意义:多个进程共享一部分物理内存。访问快,方便b) 先创建共享内存:int shmget(key_t key, int size, int shmflg)1. Key:标志共享内存的键值;0/IPC_PRIVATEa) Key=0:本不创建,但若shmflg仍为IPC_PRIVATE则仍创建2.
2011-12-06 21:02:46
363
原创 LINUX学习笔记13——进程间通信2信号
a) 产生:按键,硬件异常,kill函数发送信号b) 常见信号:1. SIGHUP:结束信号2. SIGINT:中断信号ctrl+c3. SIGKILL:结束接收信号的进程4. SIGTERM:KILL命令发出的信号5. SIGCHLD:标志子进程停止或结束的信号
2011-12-06 21:01:44
427
原创 LINUX学习笔记12——进程间通信1管道
1. 概述:a) 为什么进程间通信:数据传输;资源共享;通知事件;进程控制;b) 基础来源:1. UNIX进程间通信:2. 基于system v 进程间通信:a) system v:UNIX操作系统接口的一个分支3. Posix 进程间通信:a)
2011-12-06 21:00:44
472
原创 LINUX学习笔记11——进程控制编程
1. 获取本进程ID: pid_t getpid(void),在程序中加入这个函数,就能在程序运行时获取本进程的ID号:printf(“pid=%d”,getpid()); 以整数形式输出a) #include2. 获取父进程ID: pid_t getppid(void)a) #include3. 创建
2011-12-06 20:57:29
415
原创 LINUX学习笔记10——时间编程
a) 需要包涵头文件:#includeb) 时间类型:1. 格林威治标准时间:2. 日历时间:从一个标准的时间点到此时经过的秒数来表示的时间,本质是秒数c) 获取日历时间:time_t time(time_t *tloc):返回的是秒数1. T=time(NULL);d)
2011-12-06 20:55:36
343
原创 LINUX学习笔记9——文件访问
a) 创建文件:Int creat(const char *filename, mode_t mode)1. filename:要创建的文件名2. #include#include#include3. mode:创建模式:只能控制创建用户的写属性,其余用户都是不可写,所以一般是755a) S_I
2011-12-06 20:54:04
318
原创 LINUX学习笔记8——Makefile工程管理
1. 作用:能够使整个软件工程的编译,链接只需要一个命令就可以完成。而gcc只能编译一个文件。2. Makefile文件:描述了整个工程的编译,链接等规则。才能执行make命令3. 文件名:make命令默认寻找makefile或者Makefile的工程文件,a) 指定文件名:make –f 文件名4.
2011-12-06 20:52:27
359
原创 LINUX学习笔记7——使用GDB程序调试工具
一、GDB程序调试:程序调试工具1. 功能:a) 启动被调试程序b) 让被调试的程序在指定的位置停止c) 当程序被停住时,可以检查程序的状态2. 使用:a) 对程序gcc编译,具有可调试工具 –gb) 启动gdb:gdb 程序名1. 方法2
2011-12-06 20:51:03
402
原创 LINUX学习笔记6——使用GCC编译器
a) 建立.c文件1. 注释:用//b) 编译:gcc 文件名 选项 生产的目标程序文件名c) 运行生成的文件 :./文件名 还是需要./d) 编译选项1. –o :指定产生的可执行程序的文件名a) 若不指定,默认生成a.out2. –c :只
2011-12-06 20:50:04
385
原创 LINUX学习笔记5——SHELL解析器
a) 作用:将用户输入的指令转换为相应的机器能够运行的程序。方便的重复输入相同的指令。b) 脚本文件:就是程序的意思c) 建立shell脚本文件1. 直接用vi打开的文件就可以,文件名的后缀为.sh2. #!/bin/sh:#!用来指定该脚本文件的解析程序3. chmod +x fi
2011-12-06 20:48:44
470
原创 LINUX学习笔记4——SMB服务器
a) 作用:实现LINUX与WINDOWS之间的共享,b) 连通网络:1. 选择:setup,network,:2. 查看本地电脑的网络:运行,cmd,ipconfig3. 关闭电脑防火墙4. 把linux的网络配置好5. 启动网络服务:/etc/init.d/n
2011-12-06 20:47:39
476
原创 LINUX学习笔记3——TFTP服务器
a) 作用:主要提供对目标机的主要映像文件的下载工作,文件传输协议b) 宿主机:是执行编译、链接嵌入式软件的计算机c) 目标机:是运行嵌入式软件的硬件平台。d) 安装:1. 检查是否安装:a) Setup 中的系统服务中是否有tftpb) netstat -a |
2011-12-06 20:43:50
313
原创 LINUX学习笔记2——文件编程
a) vi 是linux系统的第一个全屏幕交互式编辑器b) 。vi 有3种工作模式,分别是命令行模式、插入模式、底行模式c) 基本功能:1. 进入编辑:vi hello.c2. 键入i进入插入模式3. 键入[ESC]退入到命令行模式4. 键入:进入底行模式5.
2011-12-06 20:37:34
270
原创 LINUX学习笔记1——LINUX系统命令
1. 界面切换:a) 进入字符界面:按住ctrl+alt+F1: 1. 首先需要进入用户登入,输入用户名和密码,标志:login 2. 注意:F1-F6都是字符界面,从而实现多任务多用户b) 进入图形化界面:按住ctrl+alt+F7c) 程序的暂停和跳出命令
2011-12-06 20:35:14
380
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人