• 筆試


    1. 利用宏定義一個8bit的4 5 6 位

    #define ClearBitFun(x) ( x &= (~((0x1 << 3) | (0x1 << 4) | (0x1 << 5))))

    當時差點沒讀懂題  英文 傷不起

    2.忘了

    3.考察指針

    void Sub_1(char* str)
    {
      str =(char*) malloc(100);
    }

    指針做參數 衹能修改指針指向的值  不能修改指針的指向

    我當時居然瞎bb到了DEP

    兩種修改方法

    void Sub_1(char** str)
    {
        *str =(char*) malloc(100);
    }
    
    void Sub_2(char* str)
    {
        *(char**)str = (char*)malloc(100);
    }
     
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    
        int a = 255;
        
        ClearBitFun(a);
        printf("%d
    ", a);
        char* str = NULL;
        
        Sub_1(&str);
        strcpy(str,"haha");
        printf(str);
    
        char* str1 = NULL;
        Sub_2((char*)&str1);
        strcpy(str1,"haha");
        printf(str1);
        return 0;
         
    }
    4 基本的字節考察 

    字 word
    字節 byte
    位 bit

    1 word = 2 byte

    1 byte = 8 bit

    /*
    从-128到127,共512个数。若无符号,则是0到511 带符号数过程: 1字节8个位,16进制为0x00到0xFF(0x表示16进制),
    最高位为符号位,0是正数,1是负数。 因此,0x0就是0,0x1到0x7f为正数1到127,
    而0x80到0xff为负数-128到-1 特别注意0x80=-128,0xff=-1,换算方法是按位取反加一
    */

    5.沒看懂 提議

    6.你認爲C代碼怎麽設計才能被認爲Good

    自由發揮  瞎bb

    軟件方面

    名詞解釋  

    mmu
    tlb
    cache
    pagetable

    編程 一個64為的指針的申請和釋放  這個比較簡單

    // Demo.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "Demo.h"
    #include <stdlib.h>  
    #include <stdio.h>  
    #include <string.h>  
    #include <Windows.h>
     
    #include <windows.h>  
    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <Winbase.h>
    #include <time.h>  
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    
    // 唯一的应用程序对象
    
    CWinApp theApp;
     
    using namespace std;
     
    #define BIT3 (0x1 << 3)
    static int a;
    
    void set_bit3(void) 
    {
        a |= BIT3;
    }
    void clear_bit3(void) 
    {
        a &= ~BIT3;
    }
    
    
    
    #define ClearBitFun(x) ( x &= (~((0x1 << 3) | (0x1 << 4) | (0x1 << 5))))
    
    
    
    void Sub_1(char** str)
    {
        *str =(char*) malloc(100);
    }
    
    void Sub_2(char* str)
    {
        *(char**)str = (char*)malloc(100);
    }
    
    
    //Sub_1 里分配的内存没传回来的.
    //指针做参数只能修改指针指向的值, 不能修改指针的指向.
    //要修改指针本身的值, 用 Sub_1(char** str) 或 Sub_1(char*& str)
     
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    
        int a = 255;
        
        ClearBitFun(a);
        printf("%d
    ", a);
        char* str = NULL;
        
        Sub_1(&str);
        strcpy(str,"haha");
        printf(str);
    
        char* str1 = NULL;
        Sub_2((char*)&str1);
        strcpy(str1,"haha");
        printf(str1);
        return 0;
         
    }
    
    /*
    字  word
    字节 byte
    位   bit
    
    1 word = 2 byte
    
    1 byte = 8 bit*/
    /*
    从-128到127,共512个数。若无符号,则是0到511 带符号数过程: 1字节8个位,16进制为0x00到0xFF(0x表示16进制),
    最高位为符号位,0是正数,1是负数。 因此,0x0就是0,0x1到0x7f为正数1到127,
    而0x80到0xff为负数-128到-1 特别注意0x80=-128,0xff=-1,换算方法是按位取反加一
    */

      

     

      

    爱程序 不爱bug 爱生活 不爱黑眼圈 我和你们一样 我和你们不一样 我不是凡客 我要做geek
  • 相关阅读:
    Functors in OpenCV
    绘图及注释
    矩阵操作
    图像与大数组类型
    OpenCV的数据类型
    OpenCV入门
    去掉微信公众号里面的菜单栏
    解决python语言在cmd下中文乱码的问题
    解决python无法安装mysql数据库问题
    微信分享功能出现签名错误功能导致的原因
  • 原文地址:https://www.cnblogs.com/yifi/p/5976622.html
Copyright © 2020-2023  润新知