2012-02-16 9 views
0

私はCocoaとObjective-Cの本から取り組んでいます。私は本の演習に続き、本のコードとまったく同じコードを書いていることを確信しています。しかし、コードをコンパイルするとコンパイラエラーが発生します。書籍PDFからコピー&ペーストしても、まだコンパイルエラーが出ます。ここで本からそのままコピーされたコードをコンパイルするとコンパイルエラーが発生する

は、コマンドラインと出力されます:ここで

-MacBook-Pro:ch03 CauldronPoint$ gcc SongTest2.c Song2.c -o SongTest 
Song2.c:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before  
‘createSong’ 
Song2.c:20: error: expected ‘)’ before ‘theSong’ 

はコードです:

// 
// Song2.h 
// 

#ifndef _Song2_h 
#define _Song2_h 

typedef struct { 
    char* title; 
    int lengthInSeconds; 
    int yearRecorded; 
} Song; 

Song createSong (char* title, int length, int year); 
void displaySong (Song theSong); 

#endif 

// 
// Song2.c 
// 

#include <stdio.h> 

Song createSong (char* title, int length, int year) { 
    Song mySong; 
    mySong.lengthInSeconds = length; 
    mySong.yearRecorded = year; 
    mySong.title = title; 
    displaySong (mySong); 
    return mySong; 
} 
void displaySong (Song theSong) { 
    printf ("'%s' is %i seconds long ", theSong.title, theSong.lengthInSeconds); 
    printf ("and was recorded in %i\n", theSong.yearRecorded); 
} 

// 
// SongTest2.c 
// 

#include <stdio.h> 
#include "Song2.h" 

main() { 
    Song allSongs[3]; 
    allSongs[0] = createSong ("Hey Jude", 210, 2004); 
    allSongs[1] = createSong ("Jambi", 256, 1992); 
    allSongs[2] = createSong ("Lightning Crashes", 223, 1997); 
} 

誰もが、私は、これはエラーなしcomplileするために得ることができる方法上の任意のアイデアがありますか?

答えて

2

ヘッダーファイルSong2.hSong2.cに含める必要があります。
Songの型を理解できないため、コンパイラが不平を言っています。

// 
// Song2.c 
// 

#include <stdio.h> 
#include "Song2.h" 
関連する問題