0

私はこのエラーに遭遇しました:

main.cpp:22:34:エラー:'getTotalSystemMemory'はこのスコープで宣言されていません

#include <unistd.h>
#include <cstdlib>
#include <stdio.h>
#include <iostream>

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {

    cout << "Hello World! \n";

    cout << getTotalSystemMemory();

    return 0;
}

long getTotalSystemMemory()
{
    long pages = sysconf(_SC_PHYS_PAGES);
    long page_size = sysconf(_SC_PAGE_SIZE);
    return pages * page_size;
}

メソッド'getTotalSystemMemory'は同じクラス内にあるため、スコープ内にあると想定しました

4

4 に答える 4

3

関数を使用する前に、少なくとも宣言を提供する必要があります。

long getTotalSystemMemory(); //declaration

int main(int argc, char** argv) {
    //...
    cout << getTotalSystemMemory();
    //...
}

long getTotalSystemMemory()
{
    //...
}
于 2012-08-20T13:55:32.613 に答える
1

最初にC/C++で関数を宣言する必要があります。

これを前に置くmain

long getTotalSystemMemory();
于 2012-08-20T13:55:23.143 に答える
0

以下で関数を定義する場合は、関数を「プロトタイプ化」する必要がありますint main() {}

long getTotalSystemMemory();

int main() {
    /* ....... */
    getTotalSystemMemory();
}

long getTotalSystemMemory() {}
于 2012-08-20T13:57:44.967 に答える
0

C ++では、関数を使用する関数の前に関数を記述する必要があります。

関数を一番上に書きたくない場合は、前にプロトタイプを配置する必要があります。プロトタイプは次のようになります。

<return-value> <function name> (<parameters type>);

于 2012-08-20T13:58:49.020 に答える