原创 Linux下g++編譯與使用靜態庫和動態庫(轉載)

    在windows環境下,我們通常在IDE如VS的工程中開發C++項目,對於生成和使用靜態庫(*.lib)與動態庫(*.dll)可能都已經比較熟悉,但是,在linux環境下,則是另一套模式,對應的靜態庫(*.a)與動態庫

原创 靜態代碼分析工具簡介

靜態代碼分析工具簡介 什麼是靜態代碼分析 靜態代碼分析是指無需運行被測代碼,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷,如參數不匹配,有歧義的嵌套語句,錯誤的遞歸,非法計算,可能出

原创 PAT乙級題解1006-1010

1006 換個格式輸出整數 首先判斷輸入數字的位數,然後分情況輸出即可。 #include<stdio.h> int main() { int n; scanf("%d", &n); int signB,

原创 Hash Table 的原理及實現

文章目錄原理概念散列函數衝突處理實現標準實現直接利用數組索引 原理        哈希表,也叫散列表。是一種用於查找的基本的數據結構。 說起查找,我們常見的有順序查找、二分查找,這兩者都是基於關鍵碼的比較 順序檢索 == !

原创 IO寫流程分析

IO寫流程分析 IO 寫流程圖示: 系統調用 read系統調用的處理分爲用戶空間和內核空間處理兩部分。其中,用戶空間處理只是通過0x80中斷陷入內核,接着調用其中斷服務例程,即sys_read以進入內核處理流程。 對於read系統

原创 名詞解釋

A 名詞 解釋 ADB Android Debug Bridge,SDK自帶的一個基於命令行的調試程序 ADT Android Developer Tools,ADT 是和 android sdk 一起安裝,圖形

原创 Linux內核的整體架構簡介

1. 前言 本文是“Linux內核分析”系列文章的第一篇,會以內核的核心功能爲出發點,描述Linux內核的整體架構,以及架構之下主要的軟件子系統。之後,會介紹Linux內核源文件的目錄結構,並和各個軟件子系統對應。 注:本文和其它

原创 交換兩個變量的三種方法

現有 int a = 12; int b = 56; 如何交換a, b的值? 方法一 利用中間變量,如: int tmp = a; a = b; b = tmp; 方法二 利用加

原创 篩法求素數

當只需要判斷某個數是不是素數的時候,我們可以直接通過素數的定義來求,但是如果要求某個範圍內的素數的個數的時候這個方法就不太合適了。雖然我們可以進行預處理,但是這種方法比較慢,一旦範圍過大,預處理過程便會超時。這時候就引入了一種新

原创 PAT乙級題解1016-1020

1016 部分A+B #include <stdio.h> int getP(int a, int da) { int res = 0; while (a) { if ((a % 10) =

原创 作爲圖牀

原创 PAT乙級題解1011-1015

1011 A+B 和 C 注意數的範圍即可 #include <stdio.h> int main() { int t, num = 1; long long a, b, c; scanf("%d", &

原创 PAT乙級題解1001-1005

文章目錄1001 害死人不償命的(3n+1)猜想1002 寫出這個數1003 我要通過!1004 成績排名1005 繼續(3n+1)猜想 1001 害死人不償命的(3n+1)猜想 將奇數情況轉換爲偶數,最後只對偶數做除二處理。 #

原创 數據結構相關概念

文章目錄基本概念及術語數據定義數據結構邏輯結構與物理結構邏輯結構物理結構 基本概念及術語 數據結構是一門研究非數值計算的程序設計問題中的操作對象,以及他們之間的關係和操作等相關問題的學科。 其重要性可用下邊公式闡述: 程序設計

原创 哨兵的作用

查找中免去越界判斷        這種在查找方向的盡頭設置“哨兵”免去了在查找過程中每次比較後都要判斷查找位置是否越界的小技巧,看似與原先差別不大,但在總數據較多時,效率提高很大,是非常好的編程技巧。 代碼一 int sequen