Pages

Saturday, February 2, 2013

C language

Posted at  1:48 AM  |  in  c++

C is an imperative (procedural) systems implementation language. It was designed to be compiled using a relatively straightforward compiler, to provide low-level access to memory, to provide language constructs that map efficiently to machine instructions, and to require minimal run-time support. C was therefore useful for many applications that had formerly been coded in assembly language.

Despite its low-level capabilities, the language was designed to encourage cross-platform programming. A standards-compliant and portably written C program can be compiled for a very wide variety of computer platforms and operating systems with few changes to its source code. The language has become available on a very wide range of platforms, from embedded microcontrollers to supercomputers.

The C language also exhibits the following more specific characteristics:


  • There are a small, fixed number of keywords, including a full set of flow of control primitives: for, if, while, switch, and do..while. There is basically one namespace, and user-defined names are not distinguished from keywords by any kind of sigil.

  • There are a large number of arithmetical and logical operators, such as +, +=, ++, &, ~, etc.

  • More than one assignment may be performed in a single statement.

  • Function return values can be ignored when not needed.

  • Typing is static, but weakly enforced: all data has a type, but implicit conversions can be performed; for instance, characters can be used as integers.

  • Declaration syntax mimics usage context. C has no "define" keyword; instead, a statement beginning with the name of a type is taken as a declaration. There is no "function" keyword; instead, a function is indicated by the parentheses of an argument list.

  •     User-defined (typedef) and compound types are possible.

    • Heterogeneous aggregate data types (struct) allow related data elements to be accessed, for example assigned, as a unit.

    • Array indexing is a secondary notion, defined in terms of pointer arithmetic. Unlike structs, arrays are not first-class objects; they cannot be assigned or compared using single built-in operators. There is no "array" keyword, in use or definition; instead, square brackets indicate arrays syntactically, e.g. month.

    • Enumerated types are possible with the enum keyword. They are not tagged, and are freely interconvertible with integers.

    • Strings are not a separate data type, but are conventionally implemented as null-terminated arrays of characters.





  • Low-level access to computer memory is possible by converting machine addresses to typed pointers.

  • Procedures (subroutines not returning values) are a special case of function, with a dummy return type void.

  • Functions may not be defined within the lexical scope of other functions.

  • Function and data pointers permit ad hoc run-time polymorphism.

  • A preprocessor performs macro definition, source code file inclusion, and conditional compilation.

  • There is a basic form of modularity: files can be compiled separately and linked together, with control over which functions and data objects are visible to other files via static and extern attributes.

  • Complex functionality such as I/O, string manipulation, and mathematical functions are consistently delegated to library routines.


C does not include some features found in newer, more modern high-level languages, including:


[polldaddy poll=7153799]

Share this post

About Imman Vel

I am a professional Hacker and I Give you hacked and cracked stuffs for free.My Another WebSite..Follow me on Google+.Find me on Facebook.

About-Privacy Policy-Contact us
Copyright © 2013 IMMAN STUFFS. Blogger Template by BloggerTheme9
Proudly Powered by Blogger.
Chrome Pointer