混亂代碼大賽

國際C語言混亂代碼大賽(IOCCC, The International Obfuscated C Code Contest)目的是寫出最有創意的最讓人難以理解的C語言代碼。下面是其中一屆的獲獎代碼,寫得真是波浪疊起呀。#include <stdio.h>#include <stdlib.h>#include <string.h>#define PI 314#define Z if#define P a->b#define Q else#define

GCC選項_-Wl,-soname

-Wl選項告訴編譯器將後面的參數傳遞給連結器。-soname則指定了動態庫的soname(簡單共用名稱,Short for shared object

相同代碼在GCC不同版本(3.4.4和4.5.3)的不同結果

代碼        int n = 1;        printf("%d, %d, %d, %d\n", n, n++, n++, n); GCC 4.5.3(運行結果:3, 2, 1, 3)        movl    $1, -12(%ebp)            ==> -12(%ebp) = 1;        movl    -12(%ebp), %edx        ==> %edx = 1        addl    $1, -12(%ebp)       

計算歐拉函數的原理

求歐拉函數的一般方法:1.我們知道一個素數p的歐拉函數f(p)=p-1;那麼p的k次冪,即n=p^k,則容易證明:f(n)=p^k-p^(k-1); 證明:已知少於p^k的數有p^k-1,其中與p^k不互質的數有p^(k-1)-1個,分別為(p*1,p*2,p*3,····,p*(p^(k-1)-1))。所以f(n)=p^(k)-1-(p^(k-1)-1)=p^(k)-p^(k-1)。 2.假設p,q為兩個互質的數,則:f(p*q)=f(p)*f(q);       原來這裡一直寫著一個略字,倒

一個簡單的cmock例子

好久以前就想試用一下cmock,但一直沒有做,汗。。。今天想起來,趕緊試一下。在官網上,下載安裝包cmock_2_0_204.zip,方便的是,不需要編譯和安裝。不過cmock依賴於ruby,因此,得先安裝一下ruby。註:這個安裝包中也包含了一個單元測試工具unity,在解開後的子目錄vendor/unity/下。例子概述:    4個檔案:my_try.h、my_try.c、my_math.h、my_try_ut.c    my_try.h和my_try.c是我要測試的代碼檔案,功能很簡單,

isblank編譯警告

最近對以前寫的代碼進行消除編譯警告,但是有一個isblank的警告一直無法消去。 例子源碼如下: #include <stdio.h>#include <ctype.h>int main(){ char a = 'a'; printf("%d/n", isblank(a)); printf("%d/n", isalpha(a)); return 0;}  編譯的結果: bash-2.05b# gcc -Wall test.ctest.c: In

穩定婚姻問題演算法【轉載】

轉自:http://teruterubouzu-laputa.spaces.live.com/      話說在1962年,兩個數學家David Gale 和Lloyd Shapley提出了下面的問題:

navigator.geolocation例子

<html><head><script type="text/javascript">function getPositionSuccess(position){var lat = position.coords.latitude;var lng = position.coords.longitude;document.write("所在位置: 經度(" + lat + "),緯度(" + lng + ")");if(typeof

用宏控制碼的一個注意事項

有時候會用宏對代碼進行控制,基本方式如下:#ifdef XXXX<code1>#else<code2>#endif但有一點需要注意:#endif必須單獨佔一行,若是在其後面寫代碼,則後面的代碼在預先處理的時候也會被刪掉。例如下面的一段代碼,在#endif同行還有一個if語句#include <stdio.h>int main(){ int a, b;#ifdef ABC if (a = 0) {#else if (a

命令列程式的萬用字元入參

今天突然想到一個問題:當命令列程式的入參為一個萬用字元(比如./a.out *)時,會是什麼樣的情況? 程式得到的入參是萬用字元*嗎?源碼:#include <stdio.h>int main(int argc, char *argv[]){ int i; printf("argc: %d\n", argc); for(i = 0; i < argc; i++) printf("argv[%d]:

Java4Android學習筆記

第37集:java線程的兩種實現方式    第一種:class RunnableImpl implements Runnable{ public void run (){ for (int i=0; i<100; ++i){ System.out.println("Runnable-->" + i); } }}class Test{ public static void main(String args[]){

SMP系統概念掃盲

SMP(Symmetric Multi-Processing),對稱式多處理結構的簡稱,是指在一個電腦上彙集了一組處理器(多CPU),各CPU之間共用記憶體子系統以及匯流排結構。在這種技術的支援下,一個伺服器系統可以同時運行多個處理器,並共用記憶體和其他的主機資源。像雙至強,也就是我們所說的二路,這是在對稱處理器系統中最常見的一種(至強MP可以支援到四路,AMD

QT_win7下編譯的程式在xp中運行中文亂碼問題

在win7下編譯了一個可執行程式,放到xp下執行,即使所有的中文已都用tr()包含起來,但中文仍為亂碼。在網上簡單搜尋了一下,看到類似的文章(http://www.xpsp3.com/jiaocheng/506.html),很好地解決所碰到的問題。原來My Code:int main(int argc, char *argv[]){ QApplication app(argc, argv);

Google Maps API例子

<html><head><title>Google Maps</title><script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script><script type="text/javascript">function getPositionSuccess(position){var

只發出RIP v2的包而不發送V1的包的原因

我當時路由器:LAN介面的配置是:192.168.1.1/255.255.255.0WAN介面的配置是:10.10.100.123/255.255.255.0而RIP的配置LAN和WAN都是一樣的,即既支援V1也支援V2,但實際情況是:1.在LAN側的PC上能抓到V1和V2的包2.在WAN側的PC上只能抓到V2的包 

驅動模組編譯總結

首先核心編譯過程中最容易犯得一類錯誤是編譯器版本不匹配(太低),所以在編譯前首先習慣檢查編譯器版本。現在簡單總結下驅動模組的編譯及安裝方法及對比:方法一:自己編寫Makefile檔案(詳見我的另一篇博文),指定核心源碼樹等,使用make指令編譯,然後動態添加使用insmod。感悟:該方法適用於核心驅動開發階段,具有方便高效的開發過程。方法二:修改核心源碼分類樹下對應驅動路徑檔案,例如:首先拷貝驅動源檔案到/linux-2.6.30/deiver/char/下,然後修改該目錄下對應Kconfig檔

代碼統計工具cloc

cloc是一個基於perl的、十分好用的代碼統計工具(http://cloc.sourceforge.net/),它所支援的語言還算十分豐富。不過,還是有很多用的較少的語言是不支援的。項目中的一些功能模組用到re2c來實現字元匹配,因此,這些.re檔案是cloc無法統計的。不過還好,cloc提供了使用者定製功能,使得我們還是可以實現對.re檔案進行程式碼統計。定製方法很簡單,基本有步驟如下:1. 匯出預設支援語言類型相關配置到一個檔案中,命令:cloc.pl

XP配置IPv6命令

1. 安裝IPv6XP預設是不支援IPv6的,且只有XP sp1以上才可以安裝。在命令列下,輸入ipv6 install,即可完成IPv6安裝。 2. 配置IP地址在命令列下,輸入netsh,進到對應的配置模式,再輸入interface ipv6,進到IPv6配置模式,用add address進行配置。netsh => interface ipv6 => add address "本地串連" 2001:1::2netsh => interface ipv6 => add

Qt_程式啟動畫面

程式啟動畫面一般用於顯示軟體資訊(名稱、作者、著作權等)以及減少程式載入過程中的枯燥感。在Qt中,可以通過QSplashScreen類來為應用程式添加一個啟動畫面,它會在應用程式的主視窗出現前顯示一個圖片,並且可以在圖片上顯示想要輸出的資訊。 下面是一個簡單的例子:#include <QApplication>#include <QTextEdit>#include <QSplashScreen>#include <QtTest>int main(

在開發板中用GDB-SERVER調試進程

引言在做嵌入式裝置的開發中,bug的調試對我來說是個問題,一旦遇到需要調試,就只能用原始的printf來夾逼定位,真是既費時又傷神。一般來說,開發板的供應商都會提供對應的交叉編譯工具,交叉編譯工具中就有gdbserver和gdb(client),有了這兩個傢伙,調試也算步入小康了。 本文 編譯對於所調試的進程,編譯時間是需要加-g參數的 gdbserver的使用找到開發板的gdbserver首先把gdbserver上傳到開發板上(我一般傳到/var下):cd /var

總頁數: 61357 1 .... 19452 19453 19454 19455 19456 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.