【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

Freepage List

Shopping List

May 21, 2009
XML
カテゴリ:メモ
コンパイルの条件ってmakefile作れば良いとか言われるが、よく分かんないし、めんどくさいので、VisualC++2008ExpressEditionでやってみる方法のメモ。

以下のようなソースファイルを、作って、拡張子がcppのファイルは、ソリューションエクスプローラのソースファイルの所に入れる。拡張子がhのファイルは、ヘッダーファイルの所に入れる。

これだけで、後はコンパイラが勝手にコンパイルしてくれる。
超楽w


//main.cpp
#include<stdio.h>
#include"sub.h"

void main(void){
  int ans;
  ans=factorial(5);
  printf("ans=%d\n",ans);
}



//sub.h
#ifndef __SUB_H
#define __SUB_H

int factorial(int num);
#endif


//sub.cpp
#include "sub.h"

int factorial(int num){
  if(num<0)return(-1);
  int i,ret=1;
  num++;
  for(i=1;i<num;i++){
    ret*=i;
  }
  return(ret);
}




一応説明しておくと、sub.hの、#ifndefは、もし、__SUB_Hがdefine(定義)されていなければ、#endifまでをコンパイルするって意味。これがないと、色んなファイルで、sub.hを定義していた場合、複数回ファイルが読み込まれることになってしまい、コンパイラが、何回も定義しやがってって怒ってくれるw
こういう風に、一回しか読み込めないようにする記述部分を、インクルードガードと言います。また、BorlandC++とかだと確か使えない、コンパイル方法を指定するワードに「pragma」ってのがある。VisualStudioだとこれも使えて、インクルードガードを付けたいヘッダファイルの一番上に
#pragma once
って書いておくと、一回しか読み込まなくなる。
具体的に今回のソースをこれに変えると、

//sub.h
#pragma once
int factorial(int num);

って感じになる。VisualStudioだけを使うなら、これの方が絶対楽だねw

後もう1個言っておくと、#define は、普段
#define DELTA 0.0001
みたいな感じで使うが、この0.0001って部分が無くって、
#define DELTA
ってなってたら、ソース中にある全てのDELTAって単語を何もない状態に置換してしまうって意味になる。
俺は昔、この意味が分からなくて苦労しました・・・・TT



検索:2個以上のファイル分割コンパイルhcppファイル





お気に入りの記事を「いいね!」で応援しよう

Last updated  May 22, 2009 02:31:14 AM
コメント(0) | コメントを書く


PR

Profile

κгοηοδ

κгοηοδ

Calendar

Recent Posts

Favorite Blog

自作パソコンを作ろ… おったきーさん

Comments

 Jamespunse@ lucky jet демо счет [url= <small> <a href="https://luckyjet…
 ThomasMat@ игра gates of olympus [url= <small> <a href="https://gatesofo…
 GregoryLoK@ Оземпик 1 мг 3мл аптеки в наличии [url= <small> <a href="http://carepoint…
 Michaeldroks@ на этом сайте электрик томск Продолжение <small> <a href="https://x…
 Donnieexons@ Ниволумаб купить [url= <small> <a href="https://xn----7s…

Headline News

Keyword Search

▼キーワード検索


© Rakuten Group, Inc.