Category:C: Difference between revisions
Puppydrum64 (talk | contribs) m (→Functions) |
Puppydrum64 (talk | contribs) m (→Functions) |
||
Line 42:
===Functions===
A function is made up of three parts: its return value, its name, and its arguments.
<lang C>int main(void) //This is the function "main," which takes no arguments and returns a 32-bit signed integer value.
int sum(int a,int b) //This is the function "sum," which takes two integer arguments and returns an integer.</lang>
Note that the variable names listed as arguments when declaring a function are just for convenience. They need not be declared nor defined, nor do they refer to any variables in your program that happen to have the same name. It's only when a function is actually <i>used</i> are the argument variables required to exist.
|
Revision as of 15:04, 10 September 2021
This programming language may be used to instruct a computer to perform a task.
Execution method: | Compiled (machine code) |
---|---|
Garbage collected: | No |
Parameter passing methods: | By value |
Type safety: | Unsafe |
Type strength: | Weak |
Type compatibility: | Nominative |
Type expression: | Explicit |
Type checking: | Static |
Lang tag(s): | c |
See Also: |
C is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the UNIX operating system. C evolved from its predecessor, B.
C has since spread to many other platforms, and is now one of the most widely used programming languages. C has also greatly influenced many other popular languages, such as C++ and Objective-C, which were originally designed as enhancements to C. People are so familiar with its syntax that many other languages such as AWK, PHP, Java, JavaScript, D, and C# deliberately used its "look and feel". C is the most commonly used programming language for writing system software, though it is also widely used for writing applications. C is the lingua franca of the open source community.
Versions
- K&R C was the first widely-used form of C. It was originally documented in The C Programming Language, published in 1978. It is named for the authors, Brian Kernighan and Dennis Ritchie (also the language's creator). Code in this style is virtually nonexistent today.
- C89 (often called ANSI C) is the version of C standardized by ANSI in 1989. It is the most commonly used and supported version of the language.
- C90 (often called ISO C) is identical to C89, republished by ISO in 1990.
- C99 is a significant improvement, adopting many features of C++ and standardizing common compiler extensions. It was standardized by ISO in 1999, and by ANSI in 2000. It is primarily supported by commercial C compilers, but most of its features are available in Clang GCC. [1]
- C11 is the previous standard, published in December 2011. It is the default for GCC as of version 5.1.
- C18 is the current standard, published in June 2018. It is the default for GCC as of version 8.1.
- C2x is the upcoming standard, planned for a 2021 publication. GCC 9 and Clang 9 have preliminary support for it.
Overview
Curly Braces
C uses curly braces as a separator for sections of code. All curly braces must be "balanced," i.e. every left curly brace must have a right curly brace after it. Most code writing programs will do this for you automatically. <lang C>int main() {
// your main program goes here
}</lang>
Scope
Unlike assembly which lets you jump anywhere or read any memory address, C imposes restrictions on labeled values. A variable defined inside a function can only be "seen" by that function, and not the ones outside it. Furthermore, you can re-use variable names inside a function and it refers to a different entity than the variable of the same name defined outside.
Functions
A function is made up of three parts: its return value, its name, and its arguments. <lang C>int main(void) //This is the function "main," which takes no arguments and returns a 32-bit signed integer value. int sum(int a,int b) //This is the function "sum," which takes two integer arguments and returns an integer.</lang> Note that the variable names listed as arguments when declaring a function are just for convenience. They need not be declared nor defined, nor do they refer to any variables in your program that happen to have the same name. It's only when a function is actually used are the argument variables required to exist. <lang C>int foo(int x){ return x; } // the "x" here is just a placeholder for whatever actually goes in when you invoke foo.
int main() {
int y; int z = 2;
y = foo(z); //note that x was never involved. That's because the "x" earlier was just a placeholder name.
}</lang>
Assignment
C allows you to define a variable as equal to a value, in more ways than just simple numerals. <lang C>int a = 3; //declare the variable a of type int, define it equal to decimal 3.
int b = -1; //declare the variable b of type int, define it equal to -1 (0xFFFFFFFF in hex)
char letter = "A"; //declare the variable "letter" of type char, it equals capital A. //C allows you to treat an ascii value as a numeral whenever you feel like it. Other languages do not.
char myString = "Hello"; //define the array "myString" containing the letters "Hello" followed by a null terminator.
int myArray[5] = {10,20,30,40,50}; //declare the array variable "myArray" containing integer values, with a maximum size of 5 elements. //Then assign 10 to the beginning, 20 after it, 30 after that, and so on.
int c = sum(a,b); //declare the integer variable "c". //Define it to equal the output of the function sum using the previously defined variables "a" and "b" as arguments. //This is only valid if the return type of the function "sum" matches the type of the variable "c."</lang>
Citation
Subcategories
This category has the following 3 subcategories, out of 3 total.
@
- C examples needing attention (5 P)
- C Implementations (5 P)
- C User (468 P)
Pages in category "C"
The following 200 pages are in this category, out of 1,297 total.
(previous page) (next page)A
- A* search algorithm
- A+B
- Abbreviations, automatic
- Abbreviations, easy
- Abbreviations, simple
- ABC problem
- ABC words
- Abelian sandpile model
- Abstract type
- Abundant odd numbers
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Active Directory/Connect
- Active Directory/Search for a user
- Active object
- Addition chains
- Addition-chain exponentiation
- Additive primes
- Address of a variable
- Air mass
- AKS test for primes
- Align columns
- Aliquot sequence classifications
- Almost prime
- Alternade words
- Amb
- Amicable pairs
- Anagrams
- Anagrams/Deranged anagrams
- Angle difference between two bearings
- Angles (geometric), normalization and conversion
- Animate a pendulum
- Animation
- Anonymous recursion
- Anti-primes
- Append a record to the end of a text file
- Append numbers at same position in strings
- Apply a callback to an array
- Apply a digital filter (direct form II transposed)
- Approximate equality
- Arbitrary-precision integers (included)
- Archimedean spiral
- Arena storage pool
- Arithmetic derivative
- Arithmetic evaluation
- Arithmetic numbers
- Arithmetic-geometric mean
- Arithmetic-geometric mean/Calculate Pi
- Arithmetic/Complex
- Arithmetic/Integer
- Arithmetic/Rational
- Array concatenation
- Array length
- Arrays
- Ascending primes
- ASCII art diagram converter
- ASCII control characters
- Aspect oriented programming
- Assertions
- Associative array/Creation
- Associative array/Iteration
- Atomic updates
- Attractive numbers
- Average loop length
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Mean time of day
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average
- AVL tree
B
- Babbage problem
- Bacon cipher
- Balanced brackets
- Balanced ternary
- Banker's algorithm
- Barnsley fern
- Base64 decode data
- Base64 encode data
- Bell numbers
- Benford's law
- Bernoulli numbers
- Bernstein basis polynomials
- Best shuffle
- Bilinear interpolation
- Bin given limits
- Binary digits
- Binary search
- Binary strings
- Binomial transform
- Bioinformatics/base count
- Bioinformatics/Sequence mutation
- Biorhythms
- Birthday problem
- Bitcoin/address validation
- Bitcoin/public point to address
- Bitmap
- Bitmap/Bresenham's line algorithm
- Bitmap/Bézier curves/Cubic
- Bitmap/Bézier curves/Quadratic
- Bitmap/Flood fill
- Bitmap/Histogram
- Bitmap/Midpoint circle algorithm
- Bitmap/PPM conversion through a pipe
- Bitmap/Read a PPM file
- Bitmap/Read an image through a pipe
- Bitmap/Write a PPM file
- Bitwise IO
- Bitwise operations
- Blum integer
- Boids
- Boolean values
- Box the compass
- Brace expansion
- Brazilian numbers
- Brownian tree
- Bulls and cows
- Bulls and cows/Player
- Burrows–Wheeler transform
- Bézier curves/Intersections
C
- Caesar cipher
- Calculating the value of e
- Calendar
- Calendar - for "REAL" programmers
- Call a foreign-language function
- Call a function
- Call a function in a shared library
- Call an object method
- Calmo numbers
- CalmoSoft primes
- Canny edge detector
- Canonicalize CIDR
- Cantor set
- Card shuffles
- Carmichael 3 strong pseudoprimes
- Cartesian product of two or more lists
- Case-sensitivity of identifiers
- Casting out nines
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Catmull–Clark subdivision surface
- Centroid of a set of N-dimensional points
- Change e letters to i in words
- Changeable words
- Chaocipher
- Chaos game
- Character codes
- Chat server
- Chebyshev coefficients
- Check if a polygon overlaps with a rectangle
- Check if two polygons overlap
- Check input device is a terminal
- Check output device is a terminal
- Check that file exists
- Checkpoint synchronization
- Chemical calculator
- Chernick's Carmichael numbers
- Cheryl's birthday
- Chinese remainder theorem
- Chinese zodiac
- User:Chkas
- Cholesky decomposition
- Chowla numbers
- Cipolla's algorithm
- Circles of given radius through two points
- Circular primes
- Cistercian numerals
- Classes
- Closest-pair problem
- Closures/Value capture
- Code Golf: Code Golf
- Collections
- Color of a screen pixel
- Color quantization
- Colorful numbers
- Colour bars/Display
- Colour pinstripe/Display
- Combinations
- Combinations and permutations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Common sorted list