zoukankan      html  css  js  c++  java
  • apue 20130314

    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笔记

    1. 自己的笔记
    2. 代码

    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;

    1. sizeof()运算符

    int a;

    cha *p=”abcd”;

    char *p1[10];

    void *p2=”abcd”;                       

    sizeof(int);

    sizeof(void);

    sizeof(9);

    sizeof(‘a’);

    sizeof(“abcdefg”);

    sizeof(*(void *)p2);



  • 相关阅读:
    opencv4显示与保存图片
    opencv播放视频
    opencv4.1.0环境配置
    lambda表达式
    基于范围的for循环
    可调用对象包装器std::function
    C++11的类型推导
    Datagridview 实现二维表头
    Linux内存相关sysfs、工具
    关于net core 站点通过iis部署,跨域配置遇到的问题
  • 原文地址:https://www.cnblogs.com/wangjingyuwhy/p/2960453.html
Copyright © 2011-2022 走看看