マガジンのカバー画像

C言語

63
C言語に関するあれこれ
運営しているクリエイター

#include

C言語教室 第20回 - 双方向リスト(回答提出)

C言語教室 第20回 - 双方向リスト(回答提出)

こちらの記事の課題回答です。

前回、単方向リストを回答させて頂きました。
プログラミングにおけるリストの位置付けについてはそちらの方でクダクダしく(?)申し上げました(笑)。

さて!

次は双方向リストです。
右手で前の人と
左手で後ろの人と
手をつないでいるようなものです。

単方向リストにくらべると双方向リストは情報量が増えるのですが、その分実装はしやすい。単方向リストが出来上がってますか

もっとみる
C言語 足し算プログラム改善

C言語 足し算プログラム改善

前回プログラムでは、足し算が一回しかできませんでした。

なので、繰り返し足し算できるように改良してみました。

それがこちら。
#include <stdio.h>int main(){ for (;;) { int a; int b; int x;

もっとみる
C言語 「main」関数と分離する

C言語 「main」関数と分離する

序章前回までで足し算プログラムを作りました。

関数は「main」関数が1つだけ。

「main」関数はC言語において特殊です。
プログラムを実行したとき、この「main」関数から実行されます。
プログラムの中で「main」関数は必ず必要であり、複数存在してはいけません。唯一無二の存在です。

C言語で書かれたプログラムは必ず「main」関数を持ちます。
プログラムAからプログラムBへコードを移植

もっとみる
C言語って何? 標準関数を使ってみる

C言語って何? 標準関数を使ってみる

それでは、その「標準関数」です。

<assert.h>

assert

<complex.h>

cacos

cacosf

cacosl

casin

casinf

casinl

catan

catanf

catanl

ccos

ccosf

ccosl

csin

csinf

csinl

ctan

ctanf

ctanl

cacosh

cacoshf

cac

もっとみる
[コラム]プリプロセッサのいろいろ

[コラム]プリプロセッサのいろいろ

[コラム]プリプロセッサのいろいろ 1

ものすごく複雑なマクロに出会った。
コンパイラのバグで展開できなかった。

[コラム]プリプロセッサのいろいろ 2

C言語のヘッダファイルというのはとても便利そうに見えるのだが、本当は実に面倒な代物である。
分離して書くことをプログラマに強いている。
だから、JavaもC#もこれを排除した。

[コラム]プリプロセッサのいろいろ 3

「#define」

もっとみる
【C言語】コンパイラが何をしているのか、ちょっとのぞいてみよう その2 プリプロセッサ

【C言語】コンパイラが何をしているのか、ちょっとのぞいてみよう その2 プリプロセッサ

C言語のコンパイラというのは、次の4つのステップで成り立ちます。

(1)プリプロセッサ
(2)コンパイル
(3)アセンブル
(4)リンク

まとめて説明しようと思いましたが、長くなったので個別に。

まずは、プリプロセッサから。

(1)プリプロセッサ

プリプロセッサというのは、「#」で始まるプリプロセッサ命令を処理します。

「#include」で指定されたファイルを読み込み、
「#defi

もっとみる