これを実行する方法はありますか?
新しいスコープを作成し、同じ名前の新しい変数を定義して、関数の引数の名前をシャドウすることができます。
void some_function(int some_argument) {
{
float some_argument = 0;
// Do stuff
}
}
しかし、あなたが使用することはできません。
void some_function(int some_argument) {
{
float some_argument = (float)some_argument;
// Do stuff
}
}
を第2のケースでは、初期化は、シャドウイングの変数を初期化するために、関数の引数を使用しません。変数と引数に異なる名前を使用して
:
int i = i;
は、すべてのこれらの激論を避けるように悪いです。
void some_function(int some_argument_in) {
float some_argument = (float)some_argument_in;
// Do stuff
}
関数のオーバーロードを使用する。
void some_function(float some_argument) {
// Do stuff
}
void some_function(int some_argument) {
some_function((float)some_argument);
}
シャドウイングとも呼ばれますが、イニシャライザで古い定義を使用することはできません。 (それは新しいものを使用します) – pmdj
あなたはそれほど多くのクリーナーを意味しますか?新しい名前を付けて、関数のパラメータを無視してください。 – NathanOliver
引数を使うだけではなく、一時的に保存しておきたいのであれば、どうすれば元のものを参照するのでしょうか? – xinaiz