Точка с запятой в концах операторов "if" и функций в C

Это можно сделать с помощью SKU API . Одна из конечных точек там будет перечислять SKU. Вы можете фильтровать эти SKU на основе product. т.е.

curl https://api.stripe.com/v1/skus?limit=3 \
    -u sk_test_9GavlLpfiKewqeCBXvRvmVgd: \
    -d product=PRODUCT_ID
    -G

Где PRODUCT_ID - это хороший типизированный продукт, а не услуга.

19
задан Donald Duck 14 July 2017 в 03:25
поделиться

7 ответов

Они ничего не делают. Я подозреваю, что они являются признаком того, кто не очень хорошо понимает язык.

Если это исходный код, которым вы условно «владеете», я бы удалил код и попытался нежно поговорить с человеком, который написал это.

33
ответ дан 30 November 2019 в 02:45
поделиться

это фиктивный statememt. Ваш образец идентичен

if (x == NULL) {
 // some code
 do_something_here();
}

/* empty (dummy statement) here */ ;

// more code
some_other_code_here();
7
ответ дан 30 November 2019 в 02:45
поделиться

Первый точка с запятой (после оператора if) - это просто пустое выражение, которое ничего не делает. Я не вижу смысла в том, чтобы это было там.

Вторая точка с запятой (после функции) является ошибкой, так как она находится за пределами любого блока кода. Компилятор должен выдать предупреждение.

2
ответ дан 30 November 2019 в 02:45
поделиться

Вы правы, компилятор считает их пустыми операторами. Они не нужны, я думаю, программист почему-то так подумал.

5
ответ дан 30 November 2019 в 02:45
поделиться

Эти точки с запятой бесполезны, как уже указывали другие , Единственное, что я хочу добавить, это то, что IMO, они все равно оптимизированы, то есть компилятор не генерирует для них никакого реального кода.

0
ответ дан 30 November 2019 в 02:45
поделиться

Я думаю, что автор, возможно, хотел что-то вроде:

if(condition for tbd block)
    ;
else {
    //Some code here
}

что вы могли бы сделать, если бы вы строили леса код и все еще хотел его компилировать. Хотя есть большая вероятность, что это просто ошибка, как предполагает Джон.

0
ответ дан 30 November 2019 в 02:45
поделиться

Эти точки с запятой не нужны (как вы сказали, это пустые операторы). Ваш код компилируется с помощью gcc при условии, что определено 'x' (проверьте http://www.codepad.org ). Нет причин, по которым компилятор C отказался бы компилировать ваш код.

1
ответ дан 30 November 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: