sequence-points

    5熱度

    1回答

    是否有下面的Java代碼的執行保證順序: int i = getA() + getB(); 是getA()總是getB()之前執行,因爲任何一般人所期望的?

    19熱度

    3回答

    operator =不是一個序列點嗎?在C和C++中都是如此。 我很難考慮一個反例。

    3熱度

    2回答

    C++中的編譯器可以重新排序變量設置和throw() op嗎?或者,標準的C++ 14882-1998允許或禁止該轉換的編譯器? 對於代碼: bool funct() { bool succeeded = false; bool res_throw = false; try { throw("it"); succeeded = tru

    3熱度

    2回答

    我很好奇爲什麼在鏈接靜態函數和成員函數之間的參數計算順序的差別。從this question的答案我可以看出它沒有說明在這樣的鏈接函數調用之間參數評估順序是什麼。舉個例子下面的代碼片斷: #include <iostream> class test { public: static test& chain_s(test& t, int i) { std::cout <<

    0熱度

    3回答

    由於'?'的關聯性,是從右到左,任何2個連續的'?'運營商必須如此對待,對嗎? 現在, int x=-1; int y=x?x++?x:-1:1; 我希望這是執行爲: '?' int y = x ? (x++?x:-1) : 1; 現在,因爲它正從從右到左執行,遇到第一個時在聲明中,X的值是0,表達式爲 int y= x? 0 : 1; 因此,我預計Y中1,但它表明我的DEV-cpp

    21熱度

    2回答

    相關問題:Any good reason why assignment operator isn't a sequence point? 從comp.lang.c FAQ我會推斷下面的程序是未定義的。奇怪的是,它只提到f作爲一個序列點,在參數的計算和控制轉移到f之間。從f回到調用表達式的控制轉移不會列爲序列點。 int f(void) { i++; return 42; } i = f();

    8熱度

    2回答

    我懷疑下面的函數鏈會根據C++標準(假設C++ 0x)導致未指定的序列。只需要確認,如果有人可以提供解釋,我會很感激。 #include <iostream> struct TFoo { TFoo(int) { std::cout<<"TFoo"<<std::endl; }; TFoo foobar1(int) { s

    7熱度

    3回答

    結構成員初始化表達式之間是否存在序列點? 例如,下面的代碼總是會打印出「a,b」嗎? #include <stdio.h> typedef struct { char *bytes; int position; int length; } Stream; typedef struct { char a; char b; } Pair;

    10熱度

    2回答

    我使用的strcmp在以下方式 傳遞的char []數組名稱 傳遞指針字符串文字 但是,第二個結果中賽格故障。即使我已經證實,指針指向正確的字符串文字,我很困惑,爲什麼我收到賽格故障.. 下面是代碼: - #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char const *arg

    1熱度

    1回答

    我有以下代碼片段: int count = (int)sizes.size(); CvSeq* seq = cvCreateSeq(0, sizeof(CvSeq), sizeof(CvPoint2D32f), memStorage); float line[4]; for (int i=0;i<count;i++) { CvPoint2D32f p; p.x = s