zoukankan      html  css  js  c++  java
  • 第二周学习笔记

    第二周学习笔记

    10-17日

    • 今日问题:

    • gcc编译出错,head.找不到文件。
      放弃virtualware:) 重新安装virtualBox

    • 安装VirtualBox不能新建32bit虚拟机
      BIOS界面设置VT为able

    • 今日代码:

    head.h
    #ifndef HEAD_H
    #define HEAD_H
    int add(int,int);
    int sub(int,int);
    int mul(int,int)
    double div(int,int);
    #endif
    
    add.c:
    #include "head.h"
    int add(int a,int b)
    {
    return a+b;
    }
    
    sub.c:
    #include "head.h"
    int sub(int a,int b)
    {
    return a-b;
    }
    
    mul.c:
    #include "head.h"
    int mul(int a,int b)
    {
    return  a*b;
    }
    
    div.c
    #include "head.h"
    double div(int a,int b)
    {
    return a/b;
    }
    
    main.c
    int main(void)
    {
    int a,b;
    printf("enter two numbers:");
    scanf("%d %d",&a,&b);
    printf("add:%d
    ",add(a,b));
    printf("sub:%d
    ",sub(a,b));
    printf("mul:%d
    ",mul(a,b));
    printf("div:%d
    ",div(a,b));
    return 0;
    }
    

    10月18日

    • 今日问题

    -div函数结果始终是0.000000
    把div函数里的数值类型改为int型。反正整数的时候是正确结果啦

    • 涉及到的代码如下
    head.h
    #ifndef HEAD_H
    #define HEAD_H
    int add(int,int);
    int sub(int,int);
    int mul(int,int)
    int div(int,int);
    #endif
    
    div.c
    #include "head.h"
    int div(int a,int b)
    {
    return a/b;
    }
    
    main.c
    int main(void)
    {
    int a,b;
    printf("enter two numbers:");
    scanf("%d %d",&a,&b);
    printf("add:%d
    ",add(a,b));
    printf("sub:%d
    ",sub(a,b));
    printf("mul:%d
    ",mul(a,b));
    printf("div:%d
    ",div(a,b));
    return 0;
    }
    
    • 执行结果如下
    sudo apt install gcc
    gcc *.c -o 20189208
    ./20189208
    enter two numbers: 24 2
    add:26
    sub:22
    mul:48
    div:12
    
    • gcc 编译
    gcc -E main.c -o main20189208.i
    gcc -S main20189208.i -o main20189208.s
    gcc -C main20189208.s -o main20189208.o
    gcc -Og -o prog1 main.c add.c sub.c mul.c div.c
    ./prog1
    

    10月19日

    • 今日问题:
    • 1.virtualbox不能复制粘贴代码
      修改了i/o为主机并勾选了固态存储还安装了增强功能,终于可以复制了
    • 2.gdb编译出错,main函数内的函数引用全部出错
    vim main.c
    
    int main(void)
    {int a,b;
    printf("enter two numbers:");
    scanf("%d %d",&a,&b);
    for(int i=0;i<=7;i++)
    {
    printf("add:%d
    ",add(a,b));
    
    printf("sub:%d
    ",sub(a,b));
    printf("mul:%d
    ",mul(a,b));
    printf("div:%d
    ",div(a,b));
    return 0;}
    }
    
    gcc -g *.c -o gmain20189208
    gdb gmain20189208
    (gdb) l
    warning: Source file is more recent than executable.
    1	int main(void)
    2	{
    3	int a,b;
    4	printf("enter two numbers:");
    5	scanf("%d %d",&a,&b);
    6	for(int i=0;i<=4604;i++)
    7	{
    8	printf("add:%d
    ",add(a,b));
    9	
    10	printf("sub:%d
    ",sub(a,b));
    (gdb) 
    11	printf("mul:%d
    ",mul(a,b));
    12	printf("div:%d
    ",div(a,b));
    13	return 0;
    14	}
    15	}
    (gdb) b main
    Breakpoint 1 at 0x749: file main.c, line 2.
    (gdb) b 6 if i==2302
    Breakpoint 2 at 0x785: file main.c, line 6.
    (gdb) b 6 if i==1
    Note: breakpoint 2 also set at pc 0x785.
    Breakpoint 3 at 0x785: file main.c, line 6.
    (gdb) r
    Starting program: /home/ycx/gmain20189208 
    

    • 静态库
    ycx@ycx-VirtualBox:~$ ls
    20189208          gmain20189208   main20189208.o  prog1   视频  音乐
    add.c             gmian08         main20189208.s  sub.c   图片  桌面
    div.c             head.h          main.c          公共的  文档
    examples.desktop  main20189208.i  mul.c           模板    下载
    ycx@ycx-VirtualBox:~$ gcc -c mul.c add.c sub.c div.c
    ycx@ycx-VirtualBox:~$ ls
    20189208  div.o             head.h          main.c  sub.c   视频  音乐
    add.c     examples.desktop  main20189208.i  mul.c   sub.o   图片  桌面
    add.o     gmain20189208     main20189208.o  mul.o   公共的  文档
    div.c     gmian08           main20189208.s  prog1   模板    下载
    ycx@ycx-VirtualBox:~$ ar rcs  math9208.a add.o sub.o mul.o div.o
    ycx@ycx-VirtualBox:~$ ls
    20189208  div.o             head.h          main.c      prog1   模板  下载
    add.c     examples.desktop  main20189208.i  math9208.a  sub.c   视频  音乐
    add.o     gmain20189208     main20189208.o  mul.c       sub.o   图片  桌面
    div.c     gmian08           main20189208.s  mul.o       公共的  文档
    ycx@ycx-VirtualBox:~$ gcc -c main.c
    ycx@ycx-VirtualBox:~$ ls
    ycx@ycx-VirtualBox:~$ gcc -static -o prog9208 main.o ./math9208.a
    ycx@ycx-VirtualBox:~$ ls
    20189208  examples.desktop  main20189208.o  mul.c     sub.o   文档
    add.c     gmain20189208     main20189208.s  mul.o     公共的  下载
    add.o     gmian08           main.c          prog1     模板    音乐
    div.c     head.h            main.o          prog9208  视频    桌面
    div.o     main20189208.i    math9208.a      sub.c     图片
    

    • 共享库
    ycx@ycx-VirtualBox:~$ gcc -shared -fpic -o math9208.so add.c sub.c mul.c div.c
    ycx@ycx-VirtualBox:~$ gcc -o prog9208_2 main.c ./math9208.so
    

    • makefile笔记
    testmymath:main.o add.o sub.o mul.o div.o
    gcc main.o add.o sub.o mul.o div.o -o testmymath
    main.o:main.c head.h
    gcc -c main.c
    testmymath:main.o add.o sub.o mul div.o
    gcc main.o add.o sub.o mul.o div.o -o testmymath
    main.o:main.c head.h
    gcc -c main.c
    add.o:add.c head.h
    gcc -c add.c
    sub.o:sub.c head.h
    gcc -c mul.c
    div.o:div.c head.h
    gcc -c div.c
    

    10月20日

    • makefile执行过程
    vim makefile
    testmymath:main.o add.o sub.o mul div.o
            gcc main.o add.o sub.o mul.o div.o -o testmath
    main.o:main.c head.h
            gcc -c main.c -o main.o
    add.o:add.c head.h
            gcc -c add.c -o add.o
    sub.o:sub.c head.h
            gcc -c sub.c -o sub.o
    mul.o:mul.c head.h
            gcc -c mul.c -o mul.o
    div.o:div.c head.h
            gcc -c div.c -o div.o
    clean:
            rm -f *.o testmath
    
    
    ycx@ycx-VirtualBox:~$ make
    gcc main.o add.o sub.o mul.o div.o -o testmath
    ycx@ycx-VirtualBox:~$ ./testmath
    enter two numbers:24 2
    add:26
    sub:22
    mul:48
    div:12
    

    10月21日

    我的how computer works 笔记

    实验楼截图在笔记末尾
    完成作业:)

  • 相关阅读:
    APACHE 服务器开启URL REWRITE模块的方法
    tp路由+伪静态+去掉index.php
    PHP实现伪静态方法汇总
    在SAE分布式服务上开发需要解决的问题
    [置顶] 刘汝佳《训练指南》动态规划::Beginner (25题)解题报告汇总
    android 桌面小工具(Widget)开发教程
    VC++深入详解-第四章学习心得
    LED音乐频谱之输入数据处理
    CSharp设计模式读书笔记(15):命令模式(学习难度:★★★☆☆,使用频率:★★★★☆)
    CSharp设计模式读书笔记(14):职责链模式(学习难度:★★★☆☆,使用频率:★★☆☆☆)
  • 原文地址:https://www.cnblogs.com/Ychancy/p/9826299.html
Copyright © 2011-2022 走看看