Time of Update: 2018-12-05
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。初級版_Bool Isprimer(unsigned n){ if(n<=1)return false; unsigned i,tem=sqrt(n)+1; for(i=2;i<=tem;i++) /*2也是素數*/ if(n%i==0)return false; return true;} 升級版_Bool Isprimer(unsigned n){ if(n==2)return
Time of Update: 2018-12-05
一、JNI簡介 JNI:Java Native Interface,是Java語言提供的一種通用介面,用於Java代碼與本地化代碼的互動。所謂本地化代碼是指直接編譯成的與機器相關的二進位代碼,而非Java位元組碼之類的中間代碼。Windows下面的可執行檔,DLL等,Linux下面的可執行檔和SO檔案等,都是二進位代碼。 JNI允許Java語言編寫的程式與其他語言編寫的程式庫(DLL,
Time of Update: 2018-12-05
前段時間因為需要,公司需要寫java和c++的程式,把這個分享給大家,當然網上還有更好的,其實jni就是java到C++的資料類型轉換1.環境export JAVA_HOME=/opt/java/jdk1.6.0_23export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport JRE_HOME=$JAVA_HOME/jre2.:基本操作 1.java類中聲明本地方法, 2.然後調用javah命令產生.h標頭檔
Time of Update: 2018-12-05
Time of Update: 2018-12-05
原文地址:linux下通過JNI用C/C++中調用JAVA類作者:開心人最近正在做一個C/C++調用java的程式,這裡說的調用java不是使用方式 exec(/path/to/java,.....),而是調用一個class檔案中的一個特定的函數。 實踐後總結如下: 1. 安裝 jdk2. 安裝gcc(linux內建有的就無需安裝了) 利用JNI(java native interface),來實現動態建立java runtime
Time of Update: 2018-12-05
1.C語言中沒有引用傳遞,可用傳遞指標方式代替。2.C語言函數不支援預設參數和函數重載。只能定義不同的函數。3.C89中不能隨時隨地定義變數。4.C89中木有bool類型。可以通過int類比。或用enum枚舉類比。或#define false 05.C++中的枚舉類型變數不支援自加,自減運算,用之前要強制轉換為整型後再轉回來。待續。。。
Time of Update: 2018-12-05
1.當調用一個函數失敗時,可以用perror輸出友善的錯誤處理。便於出錯時調試。#include <stdio.h>void perror(const
Time of Update: 2018-12-05
現在的程式員,不再像以前一樣,掌握一種程式設計語言就可以混得有模有樣了,現實的情況是,真實的項目中,通常是涉及多種程式設計語言,舉幾個簡單的例子,一個軟體為了快速開發,可能是使用Delphi或VB作為介面開發慣用語言,底層的指令或核心演算法,會使用C/C++處理,涉及資料處理的時候,為了安全和快速開發,會使用Javascript或Python等指令碼語言實現資料分析處理。因此,開發人員應該學習或掌握語言混合編程。
Time of Update: 2018-12-05
-o 指定目標檔案名-std=c99 用C99標準編譯-Wall 警告全開-c 只編譯不連結,產生中間檔案-g 產生調試資訊-O0 : 預設不最佳化(若要產生調試資訊,最好不最佳化)-O1 : 簡單最佳化,不進行速度與空間的權衡最佳化; -O2 : 進一步的最佳化,包括了調度。(若要最佳化,該選項最適合,它是GNU發布軟體的預設最佳化層級;-O3 : 雞肋,興許使程式速度更慢;-funroll-loops : 展開迴圈,會使可執行檔增大,而速度是否增加取決於特定環境;-Os :
Time of Update: 2018-12-05
解釋型語言不需要編譯,修改方便是一個很大的優點 c語言可以算是我在電腦語言的母語了(雖然學過pascal,可惜沒編程過。。。),今天居然看到有c的解譯器了,載下來,發現IDE不會配置,cmd下面啟動並執行倒是可以,而且連c++和STL都支援,相當不錯 UnderC ACMer可以試試吃螃蟹 附上命令列下的參數說明 Command SummaryWhen UCW loads you will be presented with the ;> prompt. You
Time of Update: 2018-12-05
將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。初級演算法:#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){ int n,i; scanf("%d",&n); printf("%d=",n); for(i=2;i<=sqrt(n);i++) { if(n%i==0) { n/=i; printf("%d*",i--);
Time of Update: 2018-12-05
/*這是我第一次寫技術部落格,代碼是從前幾天寫的直接粘貼夠來的。本人剛開始學資料結構,看過一點c++,所以想用類來實現鏈表*//* Date: 19/09/11 23:37 Description: 實現單向鏈表基本的功能 包括:建立,插入,得到元素的值,刪除,銷毀*/#include<iostream>//節點typedef struct Node{ int num; struct Node*pNext;}Node;//用類管理和實現鏈表class
Time of Update: 2018-12-05
題目:列印出100-999以內的“水仙花數”,所謂“水仙花數”是指一個三位元,其各位元字立方和等於該數本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。程式分析:利用for迴圈控制100-999個數,每個數分解出個位,十位,百位。可以用3個數分別代表水仙花數的百位、十位、個位。程式原始碼:#include<stdio.h>int main(){ int i,j,k; for(i=1;i<=9;i++) for(j=0
Time of Update: 2018-12-05
檔案中有一個位置指標,指向當前讀寫的位置,在順序讀寫一個檔案的過程中,每讀寫一個字元,位置指標自動滑向下一個字元位置。可以移動這個位置指標,達到隨即讀寫目的。下面是幾個和檔案定位有關的函數。 1.void rewind(FILE *fp);fp為檔案指標。傳回值為void 即無傳回值該函數的作用是使位置指標重新返迴文件的開頭。 2.int feek(FILE *fp,Llong offset,int
Time of Update: 2018-12-05
還是沒搞懂KMP演算法,不得不說這事個牛逼的演算法。放在這裡,便於以後查看int Index_KMP(const char*str,const char*t){int str_size=strlen(str);int t_size=strlen(t);int *next=new int[t_size];GetNext(t,next,t_size);int i=0,j=0;while (i<str_size &&j <t_size){if (j==-1||str[i]=
Time of Update: 2018-12-05
發現最近寫的程式總是要用到檔案操作,所以把C語言與檔案輸入輸出有關的函數複習一下。 C語言是通過將一個檔案類型指標與檔案關聯起來來對檔案進行開啟、關閉、輸入、輸出。檔案類型為FILE(實際上是一個結構體)。定義一個檔案指標為FILE *fp;就可以將fp和某個檔案關聯起來進行操作了。例如要開啟一個檔案: FILE *fp;
Time of Update: 2018-12-05
類的static成員 類的成員變數和成員函數都可以聲明為static。 1.類的static成員是屬於類的,為所以該類的執行個體對象共用但不是某個對象的組成部分。不管有沒有建立、建立了多少類的執行個體,static成員存在且只存在一份拷貝。 2.static成員同樣受存取權限的約束。 3.可以通過範圍操作符從類直接存取static成員,或者通過對象、引用或指向該類類型的指標間接訪問。
Time of Update: 2018-12-05
1.判斷檔案是否開啟成功: 判斷檔案是否開啟成功可用fopen的傳回值if((fp=fopen("filename","r"))==NULL)則開啟失敗。 2.判斷檔案是否結束:判斷ASCII檔案是否結束fgetc()會返回結束標誌EOF(即-1)由於二進位檔案資料會出現-1所以必須用函數feof(fp)判斷,feof(fp)==1則已結束。所以讀入一個檔案可以while(!feof(fp)){c=fgetc(in);
Time of Update: 2018-12-05
賦值操作符 內建類型可以直接賦值,類也應該定義對該類型對象賦值會發生什麼。和複製建構函式一樣,如果類沒有定義自己的賦值操作符,編譯器就會為類合成一個。 CBox box1,box2; box1 = box2; 賦值操作符重載
Time of Update: 2018-12-05
複製建構函式(copy constructor) C++允許用一個對象初始化另一個對象。完成這個任務的叫複製建構函式。 複製建構函式的調用時機 根據另一同類型的對象顯式或隱式初始化一個對象。(包括賦值初始化和直接初始化) 將一個類對象作為實參傳遞給一個函數。(非參考型別參數。) 從函數返回一個對象。 初始化順序容器中的元素。 根據元素初始化式列表初始化數組元素。