*p++ ++*p (*p)++
*p++ 會對p加1. 因為unary operators相同優先權的運算子結合性由右至左。
如果要對p所指的內容加1, 請用++*p, 或 (*p)++ 。
==========================================================
指標...
1. int *a[10]
2. int (*a)[10]
array前面是array的名字
int *a[10] ,a是array的名字,array放的是 int *
int (*a)[10],(*a)是array的名字,array放的是 int
工程師 Start Over
KEEP LEARNING
2018年2月26日 星期一
2017年11月13日 星期一
Dev C++, C++11 編譯器設定
今天在Windows 10, Dev C++ v5.11 環境
#include <iostream>
#include <bitset>
using namespace std;
int main() {
unsigned short short1 = 4;
bitset<16> bitset1{short1}; // the bitset representation of 4
cout << bitset1 << endl; // 0000000000000100
unsigned short short2 = short1 << 1; // 4 left-shifted by 1 = 8
bitset<16> bitset2{short2};
cout << bitset2 << endl; // 0000000000001000
unsigned short short3 = short1 << 2; // 4 left-shifted by 2 = 16
bitset<16> bitset3{short3};
cout << bitset3 << endl; // 0000000000010000
}
☆ Changing mode from c++98 mode in Dev-C++ to a mode that supports C++11
#include <iostream>
#include <bitset>
using namespace std;
int main() {
unsigned short short1 = 4;
bitset<16> bitset1{short1}; // the bitset representation of 4
cout << bitset1 << endl; // 0000000000000100
unsigned short short2 = short1 << 1; // 4 left-shifted by 1 = 8
bitset<16> bitset2{short2};
cout << bitset2 << endl; // 0000000000001000
unsigned short short3 = short1 << 2; // 4 left-shifted by 2 = 16
bitset<16> bitset3{short3};
cout << bitset3 << endl; // 0000000000010000
}
☆ Changing mode from c++98 mode in Dev-C++ to a mode that supports C++11
想要在DEV C++運行C++11程式碼:
工具->編譯器選項->一般
呼叫編譯器加入指令 "-std=c++11" or "-std=c++0x"
2017年10月31日 星期二
時間函數
#include <stdio.h>
#include <time.h>
#include <string>
using namespace std;
//#pragma warning(disable : 4996) //_CRT_SECURE_NO_WARNINGS
int main() {
time_t NowTime;
time(&NowTime);
struct tm* timeInfo = localtime(&NowTime);
char timeStr[32];
strftime(timeStr, sizeof(timeStr), "%Y-%m-%d", timeInfo);
printf("%s", timeStr);
}
執行結果:
2017-10-31
strftime函數
http://www.cplusplus.com/reference/ctime/strftime/
#include <time.h>
#include <string>
using namespace std;
//#pragma warning(disable : 4996) //_CRT_SECURE_NO_WARNINGS
int main() {
time_t NowTime;
time(&NowTime);
struct tm* timeInfo = localtime(&NowTime);
char timeStr[32];
strftime(timeStr, sizeof(timeStr), "%Y-%m-%d", timeInfo);
printf("%s", timeStr);
}
執行結果:
2017-10-31
strftime函數
http://www.cplusplus.com/reference/ctime/strftime/
2017年10月13日 星期五
Linux 設定IP
修改 IP 地址
馬上生效
#
ifconfig eth0 192.168.0.2 netmask 255.255.255.0
開機或重啟後生效:
[root@kevin ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@kevin ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
<== 網路卡代號,必須要 ifcfg-eth0 相對應
BOOTPROTO=static
<== 開機協定,有 dhcp 及 static 這裡是 static
IPADDR=192.168.122.19
<== IP
NETMASK=255.255.255.0
<== 子遮罩網路
NETWORK=192.168.122.0
<== 網域!該網段的第一個 IP
BROADCAST=192.168.122.255
<== 廣播位址
GATEWAY=192.168.122.1
<== 預設路由
釋放IP
#
dhclient -r eth0
#
dhclient eth0
2017年9月1日 星期五
位元運算子
& AND 都1才是1
| OR 有1就是1
^ XOR 相同是0,不同是1
! NOT 反向
| OR 有1就是1
^ XOR 相同是0,不同是1
! NOT 反向
意義 | 運算子 | 範例 | a | b | c |
AND | & | c=a & b | 1100 1101 | 1001 1110 | 1000 1100 |
OR | | | c= a | b | 1100 1101 | 1001 1110 | 1101 1111 |
XOR | ^ | c= a ^b | 1100 1101 | 1001 1110 | 0101 0011 |
NOT | ~ | c =~a | 1100 1101 | 0011 0010 |
2017年8月24日 星期四
Jenkins Upgrades To Java 8
公司使用的Jenkins目前版本是Weekly Ver 2.35
考慮到隱定度問題,這次想換成Long-term Support(LTS)版本
從我開始使用Jenkins到現在,有更新過二次,但這次要升級到
Ver 2.60.3 卻發生問題了!
Ver 2.60.3 卻發生問題了!
之前升級都是選擇「管理 Jenkins」 =>「自動升版」,然後重新開啟
Jenkins 服務就完成了。但這次是要從Weekly版換成LTS版。所以就
必需手動下載 .war 檔,再放到Jenkins 的安裝目錄
e.g. C:\Program Files (x86)\Jenkins (記得先備份舊檔案)
先關閉Jenkins 服務,再做替換,完成後再重新開啟Jenkins 服務
"無法啟動 本機電腦的Jenkins 服務
錯誤 1067:處理程序意外中止"
什麼~~~ 難到是不能從Weekly版本轉換到LTS版本?
於是我又下載了Ver 2.75 Weekly版,重新做了一次升級步驟
"無法啟動 本機電腦的Jenkins 服務...錯誤 1067:處理程序意外中止"
還是不行...
還是不行...
What the xxxx ??? 看了一下 jenkins.err.log 發現是Java 版本太低
官網聲明,Weekly版 Ver 2.52 or later,LTS版 Ver 2.60.1 or later
Require Java 8
所以我就更改電腦的環境變數:
JAVA_HOME = C:\Program Files (x86)\Java\jdk1.8.0_131
PATH 加入 C:\Program Files (x86)\Java\jdk1.8.0_131\bin
再重新啟動Jenkins 服務,發現問題還是存在!
因為我的Jenkins Server 是在VM環境,當初我有做Snapshot
所以我Revert 到升級前的狀態。先做Java升級的動作,再做
Jenkins升級的動作。我發現設定完環境變數,Jenkins Server
還是跑在Java 7的環境?
Jenkins runtime version 的設定,要去 Jenkins 的安裝目錄下\ Jenkins.xml
<executable>%BASE%\jre\bin\java</executable>
改成
<executable>C:\Program Files (x86)\Java\jre1.8.0_131\bin\java</executable>
設定完Java runtime 環境,再替換.war 檔,再重新啟動Jenkins 服務
Done~~~~~~~~~~~~~!!
成功從Weekly Ver 2.35 升級到LTS Ver 2.60.3
結論:
Jenkins 的Weekly版 Ver 2.52 or later,LTS版 Ver 2.60.1 or later
官網聲明,Weekly版 Ver 2.52 or later,LTS版 Ver 2.60.1 or later
Require Java 8
所以我就更改電腦的環境變數:
JAVA_HOME = C:\Program Files (x86)\Java\jdk1.8.0_131
PATH 加入 C:\Program Files (x86)\Java\jdk1.8.0_131\bin
再重新啟動Jenkins 服務,發現問題還是存在!
因為我的Jenkins Server 是在VM環境,當初我有做Snapshot
所以我Revert 到升級前的狀態。先做Java升級的動作,再做
Jenkins升級的動作。我發現設定完環境變數,Jenkins Server
還是跑在Java 7的環境?
Jenkins runtime version 的設定,要去 Jenkins 的安裝目錄下\ Jenkins.xml
<executable>%BASE%\jre\bin\java</executable>
改成
<executable>C:\Program Files (x86)\Java\jre1.8.0_131\bin\java</executable>
設定完Java runtime 環境,再替換.war 檔,再重新啟動Jenkins 服務
Done~~~~~~~~~~~~~!!
成功從Weekly Ver 2.35 升級到LTS Ver 2.60.3
結論:
Jenkins 的Weekly版 Ver 2.52 or later,LTS版 Ver 2.60.1 or later
2017年8月22日 星期二
Performance Testing vs Load Testing vs Stress Testing
效能測試:在正常的執行下,利用負載測試方式,反覆測試與調整直到系統符合期望值。
負載測試:在瀕臨上限時,給予大量的負載,測試系統是否還能正常運作。
壓力測試:在超過上限後,給予特定的壓力條件,驗證系統是否依然可以正常運作或crash 之後是否可以回復之前的狀態。
負載測試:在瀕臨上限時,給予大量的負載,測試系統是否還能正常運作。
壓力測試:在超過上限後,給予特定的壓力條件,驗證系統是否依然可以正常運作或crash 之後是否可以回復之前的狀態。
訂閱:
文章 (Atom)