プログラム

ビルドの順序

ビルドの順序は下記となる。ビルドとコンパイルは広義の意味では同じとされるが実際には違うプリプロセス C言語のソースコードは最初にプリプロセスにかけられ、#defineや#includeが処理される、 ヘッダファイルが取り込まれて、すべてのマクロが展開される…

RubyでExcelのファイルを新規作成する

RubyでExcelのファイルを新規作成するプログラムを書こうとした際に、各メソッドごとの説明が乗っているサイトは見つけたけど、サンプルがあるサイトがなかったために備忘録として残しておきます。下記のプログラムはRuby1.9.3で動作の確認を行いました。# -…

Ruby/Tkを触ってみた

RubyでGUI系のプログラムでも書いてみようとTkで軽く遊んでみました。Windowsだと少し用意をしないといけなかったけれども、Macで書く場合には何も用意がいらないようで簡単ですね。 家に帰ってきてから準備をまったくしなくてMacで実行できたので楽で良かっ…

割り算りとシフト演算

仕事にかまけてブログの更新を行っておりませんでした。本日は仕事にてチューニングしなければいけない状態になった際に、試しに割り算とシフト演算を逆アセンブルした結果を乗せたいと思います。実行環境:Windows Vista コンパイル:gcc(MinGW)割り算 #inc…

Rubyを触ってみた

先週の土曜日から月曜日に行われたRubykaigiに参加してきたので、ついにRubyを触ってみようと環境構築を行いました(ぇ Rubykaigiに参加しながらRubyにほとんど触れたことがない人間は私ぐらいしかいなかったんじゃないでしょうかとりあえず、初心者本のRuby…

シグナルハンドラから戻ってきていない?

先日書いた、setjmpとlongjmpに関してエキスパート C プログラミングにシグナルハンドラから復帰するプログラムがあったのでMinGWにて記載してみました。#include #include #include jmp_buf buf;void handler( int s ) { if( s == SIGINT ) { printf( "now…

setjmpとlongjmpについて

エキスパート C プログラミングを読んでいたら setjmpとlongjmpについて書かれていたので乗っていたサンプルプログラムを試してみました。 #include #include jmp_buf buf;void banana() { printf( "in banana()\n" ); longjmp( buf, 1 ); /* NOTREACHED */…

C言語でバスエラーの対処方法

友人のだるいさんが勉強会中にC言語でバスエラーを発生させたので解決策を十分くらいで書いたので、のせます。#include #include #include int main() { char *str = (char*)malloc(sizeof(char)*8); int i; strcpy( str , "abcdefg" ); puts(str); for( i …

スペースの違いは実在した

Lions' Commentary on UNIX に書かれていた。 x =+ 1; は x = +1; と異なるという文章ですが、つい先日エキスパートCプログラミングを読んでいたところb=-3; /* bから3を引く */ b= -3; /* bに-3を代入する */と書かれていたのを発見しました。 どうやら昔…

a.outって実は

gcc main.c などで、コンパイルを行うと a.out という実行ファイルが生成されます。 このファイル名の由来は "Assembler Output"で、リンカなどがまだ生成されない 古いUNIXの名残なんですってね。PDP-7 で作成されたアセンブラが出力するファイル名が a.out…

コンパイラの違いなのか?

Lions' Commentary on UNIX を読んでいたところx =+ 1; は x = +1; とは異なる。それならば、 x =+1; の意味はどうなるだろうか。と書かれていたので、試してみました/***ソース***/#include void main() { int num1 = 10; int num2 = 10; int num3 = 10; nu…

ListViewを書いてみた

Androidの学習をしている際に listView単体の表示の仕方がわからなかったために悩んだので、そのプログラムを置いておきます。package jp.co.booklists;import android.app.Activity; import android.os.Bundle; import android.widget.ListView; import and…

JavaScriptハック!(1)

JavaScriptの学習を始めてみました。 JavaScriptと言えばAjaxやGoogle Mapsなどで使われているブラウザ上で動くスクリプト言語として知られています。 しかし実はこのJavaScriptが、Windowsのデスクトップ上で動作して、ローカルファイルやその他にも多くの…

JavaScriptハック!(1)

JavaScriptの学習を始めてみました。 JavaScriptと言えばAjaxやGoogle Mapsなどで使われているブラウザ上で動くスクリプト言語として知られています。 しかし実はこのJavaScriptが、Windowsのデスクトップ上で動作して、ローカルファイルやその他にも多くの…

WinAPI3

WinAPIの三回目です。 前回、メッセージボックスを出しましたがメッセージボックスにOKボタンがありましたね。 ボタンがあるならボタンを押したら反応がほしいと思いますので、メッセージボックスの戻り値を使って新しいメッセージボックスを出すプログラ…

WinAPI3

WinAPIの三回目です。 前回、メッセージボックスを出しましたがメッセージボックスにOKボタンがありましたね。 ボタンがあるならボタンを押したら反応がほしいと思いますので、メッセージボックスの戻り値を使って新しいメッセージボックスを出すプログラ…

WINAPI2

WIN32APIの第二回目はメッセージボックスを出したいと思います。 メッセージボックスはユーだ―に何らかの警告を行う時に使用します。 そのメッセージボックスを表示するにはMessageBox()関数を使います。int MessageBox( HWND hWnd, LPCTSTR lpText, L…

WINAPI2

WIN32APIの第二回目はメッセージボックスを出したいと思います。 メッセージボックスはユーだ―に何らかの警告を行う時に使用します。 そのメッセージボックスを表示するにはMessageBox()関数を使います。int MessageBox( HWND hWnd, LPCTSTR lpText, L…

WIN32API1

WindowsのAPIを使って、Windowsのプログラム作成を行っていきたいと思います。 APIとは、あるOSやミドルウェア向けにソフトウェア開発を行う時に使用する命令や関数の集合のことです。 APIを使う事により、すべてをプログラムせずともAPIの機能を呼び出すだ…

WIN32API1

WindowsのAPIを使って、Windowsのプログラム作成を行っていきたいと思います。 APIとは、あるOSやミドルウェア向けにソフトウェア開発を行う時に使用する命令や関数の集合のことです。 APIを使う事により、すべてをプログラムせずともAPIの機能を呼び出すだ…