apue 2013-03-14
1.? 做什么。文字
2.? 分析。? 思考
3.? 設計。? 偽代碼
?
?
1嵌入式方向。
2圖形編程:qt(c++) gtk(c)
3應用程序:vim ls ps等。Linux c開發
4系統:linux(分時);
?????????????????????????????????? 系統構建(cpu(arm)? 內存 硬盤(flash芯片))
5驅動程序:硬件
6硬件:pcb畫圖工具,設計硬件難
?
?
Linux arm嵌入式文件系統
??????????????????????????? GRUB引導程序? bootloader? linux kernel
?
職位:1GUI編程:qt c++(很難) 3
?????? ? 2C,gcc,gdb,makefile,linuxapi(接口)(apue) 4~5
???????????????????? Apue:文件,多進程,多線程,進程間的通信,網絡編程
???? ?3系統構建 bootloader linuxkernel 文件系統? 1
????? 4 驅動或裸機 3~4
?
程序=數據+算法
????????????? 數據來源?
????????????? 有線:網線
??????? 無線:
??????? Svn,cvs 上傳工具,版本管理軟件
?
段錯誤:兩行
???????????????????? Printf(“=============\n”);
???????????????????? Printf(“+++++++++++++\n”);找到所有段錯誤
?
10->100->1000->10000
200(10個程序)
?
練習題:統計指定目錄中所有.c文件的行數
????????????? Wc *.c
????????????? Mmap+memmove+truncate文件內容修改
????????????? Mytt abc xyz file
????????????? Mytt xyz a??????? 八皇后問題
?
C筆記
C語言概述
為什么學習C語言?
為什么要編程?
答:讓計算機作事情
?????? 二進制????? ->?????? 編程語言?? ->???? 自然語言
c/c++
編譯類:C,C++(效率高)
解釋類:shell,python(腳本),java.
?
?
思想??? ->????????? a.c???????????? ->??????????? a.out
Vi+c語言語法??????? a.c gcc?????????????????????? a.out? 二進制文件
?
Gcc
Gcc a.c –o a 把a.c編譯成a.out? elf 可執行文件
Gcc –E ???#號開頭去掉
Gcc –S ???把C? ->?? 匯編
???????????????????? ?I=9;
???????????????????? ?Fun (i++,++I,++I,i++)
???????????????????? ?不同編譯器不同
Gcc –c(小寫)?? 二進制做庫.libc
Gcc –L ???????增加搜索庫的路徑
Gcc –l ????????-lpthread編譯時加載指定的庫
Gcc –I ????????增加搜索頭文件的路徑
Gcc –g ????????調試版本?? a.out 有a.c 源代碼? gdb使用? objdump反匯編
Gcc –Wall ?????警告
Gcc –O0~9????? 編譯優化
??????????????????????????? Volatile ?int?? a;易變,防止優化
??????????????????????????? Const ??int?? a;不可變
Gcc –std=c99? a.c????? 對c99標準的支持?? c89
????????????????????? For ( int i=1;i<10;i++)
Gcc –DN=9?????? 條件編譯?? #define N 9(很有用)一個代碼兩個版本
-Ddug??????? 調試?? release? 發步信息
#ifndef?? N
???????????????????? If (i%2==0)
????????????????????????????????????????? Printf(“%d\n”,i);
#else
???????????????????? Printf(“%d\n”,i);
#endif
?
出錯: ??編譯出錯??? 執行出錯
???????? A=10;?????? 匯編
?
.c?? ->?? 二進制文件??? gcc 編譯器
程序=數據+算法
數據的組織形式:數據結構
集合:int a;int b;
線性結構:int arr[10];變長數組? 變長結構體
???????? 一對一(數組),鏈表
?????? 前提:int arr[x]? x變量
????????????? Void fun(int x)
????????????? {
???????????????????? Int arr[x];
}
Main()
{
?????? Int x=10;
?????? fun (x);
}
樹狀:一對二,二叉樹
圖:一對多
?
算法:操作數據的方法
?
Vim 的配置文件
?????????????????????????????????? /etc/vimrc? 全局配置文件
?????????????????????????????????? ~/vimrc??? 當用戶的配置文件(主目錄)
Set ??number
Set ??ci?? 自動對齊
?
替換 ab .i #include <stdio.h>?? ab .m int main(int argc,? char **argv)
?
Vim 命令
????????????? Ctrl +n 自動補齊;輸入模式?? 必須加載頭文件
????????????? 行首gg=G末尾?? 命令行? 對齊
????????????? ==單行對齊
?
Int arr[x];???? 棧? sizeof(int)*x
堆Malloc(sizeof(int)*x)??
最大線程有限
?
作業:
1.? 思考.helloworld? 程序如何執行
如果沒有#include <stdio.h>,問題?也能
是誰幫助我們把helloworld輸出到屏幕上
2完整定義變量的格式
[][][][] a;
Int a;
int a;
cha *p=”abcd”;
char *p1[10];
void *p2=”abcd”;???????????????????????
sizeof(int);
sizeof(void);
sizeof(9);
sizeof(‘a’);
sizeof(“abcdefg”);
sizeof(*(void *)p2);
?
?
?
?
轉載于:https://www.cnblogs.com/wangjingyuwhy/archive/2013/03/14/2960453.html
總結
以上是生活随笔為你收集整理的apue 2013-03-14的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重写JFrame的扩大 缩小 关闭按钮
- 下一篇: OpenGL - Normal Map