Jump to content

Talk:C syntax

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Evaluation order

[edit]

The last paragraph 'Evaluation order and Lazy evaluation' is almost completely wrong! Its author should read comp.lang.c FAQ list section 3, especially answer to question 3.5. Constructions like a != NULL && func(a++) do NOT invoke undefined behaviour. The writer is confusing C's short circuit evaluation to lazy evaluation which is a completely different thing. --193.143.83.252 17:36, 26 Mar 2004 (UTC)

Agree completely. That section was completely incorrect. I tried to fix it. Kevin Saff 14:16, 7 Apr 2004 (UTC)
Your version is much better than the original! I just added one sequence point to the list. 193.143.83.252


vfd

[edit]

This article was proposed for deletion January 2005. The discussion is archived at Wikipedia:Votes for deletion/C syntax. Joyous 22:46, Jan 22, 2005 (UTC)

Standard library != C Syntax

[edit]

The standard library (for which none of the header file names have been provided I might add) has nothing to do with the syntax of C. C can be used with other libraries or none at all; its syntax is independent of them. The translation of command-line arguments is the job of the linker and again has nothing to do with C syntax.

And then I find myself guilty of the same offense, so take what I said with a grain of salt.—Kbolino 05:41, Apr 6, 2005 (UTC)

Confusing example of labelled loops

[edit]

I think example from the article C syntax#Labels is confusing:

// using break:
outer:
for (int i = 0; i < n; ++i) {
    switch (i) {
        case 1:
            break; // jumps to 1
        case 2:
            break outer; // jumps to 2
        default:
            continue;
    }
    // 1
}
// 2

// using continue:
outer:
for (int i = 0; i < m; ++i) {
    for (int j = 0; j < n; ++j) {
        continue; // jumps to 1
        continue outer; // jumps to 2
        // 1
    }
    // 2
}

For a comment "jumps to 1": which exactly "1", line 12 or line 22? I see two possible solutions:

  • Split this example into 2 code blocks.
  • Use unique names instead of 1, 2, 1, 2. Maybe "label_a", "label_b", "label_c", "label_d".

Additionally, are "case 1" and "case 2" connected with names 1, 2, 1, 2? It is better not use integer numbers for names in this example. Alexey Vazhnov (talk) 22:40, 10 January 2026 (UTC)[reply]