Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
C syntax
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Jump statements=== Jump statements transfer control unconditionally. There are four types of [[Branch (computer science)|jump statements]] in C: [[GOTO|{{code|goto}}]], {{code|continue}}, {{code|break}}, and [[return statement|{{code|return}}]]. The {{code|goto}} statement looks like this: <syntaxhighlight lang=C> goto <identifier> ; </syntaxhighlight> The [[identifier]] must be a [[label (programming language)|label]] (followed by a colon) located in the current function. Control transfers to the labeled statement. A {{code|continue}} statement may appear only within an [[C syntax#Iteration statements|iteration statement]] and causes control to pass to the loop-continuation portion of the innermost enclosing iteration statement. That is, within each of the statements <syntaxhighlight lang=C> while (expression) { /* ... */ cont: ; } do { /* ... */ cont: ; } while (expression); for (expr1; expr2; expr3) { /* ... */ cont: ; } </syntaxhighlight> a {{code|continue}} not contained within a nested iteration statement is the same as {{code|goto cont}}. The {{code|break}} statement is used to end a {{code|for}} loop, {{code|while}} loop, {{code|do}} loop, or {{code|switch}} statement. Control passes to the statement following the terminated statement. A function returns to its caller by the {{code|return}} statement. When {{code|return}} is followed by an expression, the value is returned to the caller as the value of the function. Encountering the end of the function is equivalent to a {{code|return}} with no expression. In that case, if the function is declared as returning a value and the caller tries to use the returned value, the result is undefined. ====Storing the address of a label==== [[GNU Compiler Collection|GCC]] extends the C language with a unary {{code|&&}} operator that returns the address of a label. This address can be stored in a {{code|void*}} variable type and may be used later in a {{code|goto}} instruction. For example, the following prints {{code|"hi "}} in an infinite loop: <syntaxhighlight lang=C> void *ptr = &&J1; J1: printf("hi "); goto *ptr; </syntaxhighlight> This feature can be used to implement a [[jump table]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)