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!
===Syntax=== A C function definition consists of a [[return type]] ({{code|void}} if no value is returned), a unique name, a list of parameters in parentheses, and various statements: <syntaxhighlight lang=C> <return-type> functionName( <parameter-list> ) { <statements> return <expression of type return-type>; } </syntaxhighlight> A function with non-{{code|void}} return type should include at least one {{code|return}} statement. The parameters are given by the {{code|<parameter-list>}}, a comma-separated list of parameter declarations, each item in the list being a data type followed by an identifier: {{code|<data-type> <variable-identifier>, <data-type> <variable-identifier>, ...}}. The return type cannot be an array type or function type. <syntaxhighlight lang=C> int f()[3]; // Error: function returning an array int (*g())[3]; // OK: function returning a pointer to an array. void h()(); // Error: function returning a function void (*k())(); // OK: function returning a function pointer </syntaxhighlight> If there are no parameters, the {{code|<parameter-list>}} may be left empty or optionally be specified with the single word {{code|void}}. It is possible to define a function as taking a variable number of parameters by providing the {{code|...}} keyword as the last parameter instead of a data type ad variable identifier. A commonly used function that does this is the standard library function {{code|printf}}, which has the declaration: <syntaxhighlight lang=C> int printf (const char*, ...); </syntaxhighlight> Manipulation of these parameters can be done by using the routines in the standard library header [[stdarg.h|{{code|<stdarg.h>}}]]. ====Function Pointers==== A pointer to a function can be declared as follows: <syntaxhighlight lang=C> <return-type> (*<function-name>)(<parameter-list>); </syntaxhighlight> The following program shows use of a [[function pointer]] for selecting between addition and subtraction: <syntaxhighlight lang=C> #include <stdio.h> int (*operation)(int x, int y); int add(int x, int y) { return x + y; } int subtract(int x, int y) { return x - y; } int main(int argc, char* args[]) { int foo = 1, bar = 1; operation = add; printf("%d + %d = %d\n", foo, bar, operation(foo, bar)); operation = subtract; printf("%d - %d = %d\n", foo, bar, operation(foo, bar)); return 0; } </syntaxhighlight>
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)