2016-06-24 12 views
0

最近、私はint,long intlongなどの違いを検索しました。そして答えはhereです。そして、私はlonglong intが同じであることを発見しました。だから、文 c = a *long(b);intからlong intへの型キャスト

c = a * long int (b)

はプログラム

int main() 
{ 
    int a = 10, b = 20; 
    long int c; 

    c = a *long(b); 
    cout << c; 

    return 0; 
} 

で同じでなければなりませんが、2番目の文はエラーに

[エラー]期待の主を示しています-expression before 'long'

longlong intが同一の場合、なぜ上記の2つのステートメントにエラーがあるのですか?

+1

@πάνταῥεῖあなたは間違ったコードを実行していますlol –

+0

@LightnessRacesinOrbitああ、OPは私をだます:-P ... –

答えて

7

同じ種類のものだからといって、文字通りソースコード内の文字を交換できるわけではありません。

Tにスペースがある場合、構文はT()キャストによって混同されます。

代わりにc = a * (long int)bを書きます。

+0

いいです。 '(long int)'はC-ウェイで、 'static_cast 'はC++のものです。 – Benoit

+0

@Benoit:どちらもC++で有効です。 –

+0

あなたはC++で本当に経験があるようです。私はあなたが「有効」で何を意味するのだろうかと思います。働く?容認できますか?または完全に適していますか?私が見つけたすべてのリファレンスは、 'CのようなキャストをC++で使用しないでください'と言っています。重複してタグ付けされるので、私は質問を開くことはできませんが、私は多くのあなたの投稿を読んで、私は本当にあなたの意見について興味があります。 – Benoit

0

これに角括弧を使用します。例えば、 。

c = a * (long int) (b) 

as型キャストデータ型には複数語があります。

関連する問題