或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

C/C++

Pythonのインデントを強制されるのが嫌いについて。

Pythonのインデントを強制されるのが嫌い,Lispの括弧が嫌いってのはよく見かけるけど,CやJavaの文法が嫌いってのはあまり見かけない.どちらも言語に自分をあわせていることにはかわらないというのに. 何か、偏見入ってるなぁ。インデントを強制するのはP…

へぇ!配列の添字がオーバーしてもセグメンテーションフォールト起きないんだ!インクリメントを有難がってはいけない。

久しぶりにCを触っていて、使いにくすぎて死にそうなんて、家でもちょっと触ってみた。リハビリ的なwC言語って、昔の記憶によれば、配列の添字がオーバーすると、すぐセグメンテーションフォールトで落っこちてた気がする。 #include "stdio.h" int main(){ …

1〜10までループさせるとき。Perlの1..10が使いたい・・・。

なるべく行数が少なくて、読みやすくて、しかも書きやすい。そんな書き方がしたよね。 1〜10までループさせ、改行付でその数字を表示する。 これを、C,Perl,Pythonで書いてみた。書き方が複数ある場合は、もっとも簡潔と思われるものを使った。 C サンプル…

C言語のオブジェクトファイルのシンボルを覗いてみる。

Hello,World!よりも重要なこと?2 Makefile - oneshotlife_tomの日記以前、Makefileを作って簡単なプログラムを作ったけど、もう一歩レベルの高いプログラムを書きたくなった。 Makefile $cat Makefile program:main.o sayhello.o gcc -o program main.o sayh…

Hello,World!よりも重要なこと〜3 stdio.hってどこにある?

コマンドだったらwhichで探せるけど、ファイルを探す場合はどうする?となった場合の対処法。stdio.hっていうのは、悪名高きおまじない。Cの勉強が進むころに、ヘッダや標準ライブラリの概念がわかって、後から納得することが多い。実は、ヘッダのパスを検索…

Hello,World!よりも重要なこと〜2 Makefile

お勉強しているうちは、コンパイラを直に叩いてもいいんだろうけど、どうせmake使うんでしょ?!といつも思っている。だったら、最初からMakefile使ってコンパイルするべきだと思う。google:Makefile 細かなルールとかチュートリアルはぐぐってみると詳しい…

Hello,World!よりも重要なこと〜1 gccってどこにある?

コンパイラってどこにある?Linuxでは、コマンドは必ずどこかにファイルとしてある。 whichコマンドでgccのパスを調べる $which gcc /usr/bin/gcc さて、その場所まで行ってみましょうか。 $cd /usr/bin gccと付くファイルを表示してみる。 $cd /usr/bin $ll…

C言語の基本の基本〜Cソースファイルをコンパイルし、オブジェクト名を指定してオブジェクトを生成する。

Cソースファイル名の確認とCソースファイルの内容の確認 $ls hello.c $cat hello.c #include <stdio.h> int main(void) { printf("Hello,world!\n"); } hello.cをコンパイルし、hello.oという名前のオブジェクトを生成 $gcc hello.c -o hello.o $ls hello.c hello.o </stdio.h>…

C言語の基本の基本〜Cソースファイル、オブジェクト、実行形式ファイル

コンパイラ言語であるC言語で実行形式のファイルを生成するには次のステップを踏む。 細かい話は省略する。 ソースファイルを作成する コンパイルしオブジェクトを生成する オブジェクトをリンクし実行形式ファイルを生成する で、実行形式のファイルが実行…

C言語の基本の基本〜Hello,World!を出力する。に失敗しちゃったの巻。

一番最初に「Hello,World!」を出力するプログラムを書くとき、本に書いてあるようにやれば問題無く出るんだろうけど、なんだか面白みがないのでひねくれてみた。おそらくこんなサンプルコードが書かれているに違い無い。 #include <stdio.h> int main(void) { printf(</stdio.h>…

Pythonに慣れてしまったプログラマがC言語で書くにあたって苦労するインデント。

Pythonはインデントをシンタックスとして強制する言語。なので、シンタックスエラーの無いソースコードは見栄えの統一感が素晴らしい。プログラマにはある程度自由を与えるべきだと思うが、見栄えによって可読性が変わったりするので、インデントスタイルの…

C言語の基本の基本〜Hello,World!を出力する。

C言語はコンパイラ型言語であるため、ソースコードをコンパイルし、実行形式のファイルを生成して実行する。という記載は、プログラミングをはじめて簡単な書籍を読めば誰でもわかる。もうちょっと細かい話をする。hello.c というソースファイルがあるとする…

仕事でLinux/C gccを使うことになったので復習

プログラマ一年生のときから1年半くらいLinux/C環境でプログラミングをしていたのだけれども、そのときは手順書通りにやれば業務遂行は問題無く、深く理解はしていなかったな・・・。その後はSymbianOS(リアルタイムOS)、VisualStudio使ったりと、Linuxから…