darkbibni

Le langage C

13 posts in this topic

Bonjour à tous ! :D

Aujourd'hui je vous fais découvrir le C.

Le langage C est caractérisé par le fait que soit un langage impératif et considéré de bas niveau.

 

Bas niveau car c'est le langage utilisé juste après le langage assembleur (machine) qui est juste au dessus du binaire (01000111 01100001 011010100 01100110 01100101 011100010 01001111 01010011) :P 

Il permet donc d'optimiser au maximum l'allocation mémoire utilisé et l'espace mémoire utilisé pour le stockage.

 

Ainsi on peut faire des programmes simples ou très complexes. Mais si on s'y intéresse vraiment, on peut développer le noyau (Core) de son propre système d'exploitation.

 

Le langage C possède beaucoup de notions que l'on retrouve dans beaucoup de langages tel que les fonctions ou variables.

Sa spécificité est que l'on peut utilisé des pointeurs d'adresse mémoire sur une variable (c'est à dire une étiquette permettant de retrouver la "case" mémoire où est stockée la valeur et le nom d'une variable).

 

Une fonction en C s'écrit par convention :

out_type name_function([in_type arg1], ...) {

 

}

 

Le programme de base est la fonction principale appelé "main", c'est le point d'entrée obligatoire d'un programme.

  1. int main(int argc, char **argv) {
  2.     printf("Hello Jeu.video !\n");
  3.     return 0;
  4. }

Ligne 1 (attention : elle est un peu compliqué)

Révélation

On peut d'abord lire que le main possède deux arguments (int argc, char **argv) et renvoie une valeur de sortie entière -> int

Ces arguments sont des valeurs d'entrée. On pourra les définir lorsque que l'on appelle ce programme dans une console ((Windows+R - cmd) avec une bidouille à installer (Un compilateur C et une bonne configuration au préalable)).

Ainsi en tapant en console : ./main   variable_du_type_que_vous_voulez   une_deuxième    etc

Ainsi dans le programme, on pourra tester le nombre d'argument => argc

Ainsi que la valeur de ses arguments contenu dans un tableau de chaîne (Un tableau de char à deux dimensions en réalité) d'où les deux étoiles. **argv

Révélation

La deuxième ligne est plus simple à comprendre.:

printf("chaine",[&variable],...) => Cette fonction prend une chaîne de caractère en argument et l'affiche. Quand la chaîne contient des variables en son sein, on doit ajouter une référence sur la variable que l'on veut afficher (On le fait avec &variable).

Ici on ne fait simplement que demander d'afficher Hello Jeu.video avec un retour à la ligne d'où le caractère spécial \n

Révélation

La 3e ligne indique la valeur retournée :

Ici la fonction renvoyé un INT donc c'est un entier => return 0;

 

Je n'évoque que brièvement la 4e ligne puisqu'elle permet d'indiquer la fin d'une fonction, utilisé dans de très nombreux langages. }

 

En construction ...

Share this post


Link to post
Share on other sites
il y a 1 minute, darkbibni a dit :

des programmes simples ou très complexes

Huum, je vois pas trop quels genres de programmes [J'avoue, je me suis jamais réellement penchée sur ça]. T'aurais des exemples ? ^^'


Gameuse Shinoa, modératrice du forum. ^_^

Share this post


Link to post
Share on other sites
à l’instant, Gameuse Shinoa a dit :

Huum, je vois pas trop quels genres de programmes [J'avoue, je me suis jamais réellement penchée sur ça]. T'aurais des exemples ? ^^'

Par exemple, lors de ma première année, les profs nous ont donné un tape-taupe en C à faire... Tu sais le jeu ou les chaton sortent d'une boite en carton et tu dois le taper la tête ?! :P

Bah avec mon pote on avait fait ça avec les pampa de final fantasy dans un background mario XD C'était fun ^^

Share this post


Link to post
Share on other sites
il y a 6 minutes, Gameuse Shinoa a dit :

Huum, je vois pas trop quels genres de programmes [J'avoue, je me suis jamais réellement penchée sur ça]. T'aurais des exemples ? ^^'

Oui j'aurai dû préciser ^^ ! Mais mon poste est en construction ^^'

Sans bibliothèque complémentaire c'est à dire sans rien ajouter au C, on peut faire des programmes en terminal (Console noir avec écriture blanche), des noyaux de système d'exploitation, des commandes à taper dans le terminal (exemple connu : ping qui teste la connexion avec une adresse ip ou un site internet ...). Sinon oui des jeux c'est faisable mais il faut rajouter des bibliothèques pour que ça devienne graphique et à partir de là ce n'est plus du bas niveau ^^ du coup beaucoup moins portable !

Ps : Waouh Narky modérateur félicitation :D !

Share this post


Link to post
Share on other sites
il y a 50 minutes, darkbibni a dit :

Sinon oui des jeux c'est faisable mais il faut rajouter des bibliothèques pour que ça devienne graphique et à partir de là ce n'est plus du bas niveau ^^ du coup beaucoup moins portable !

Ça dépend, on peut faire des petits jeux dans le terminal :P

Share this post


Link to post
Share on other sites
Il y a 5 heures, darkbibni a dit :

int main(int argc, char **argv) {

partiel du premier semestre, sort de ce topic !!! 

XD


Gameuse Minstery, Administratrice, Streameuse et Journaliste :angel:

Share this post


Link to post
Share on other sites
Il y a 10 heures, darkbibni a dit :

Bonjour à tous ! :D

Aujourd'hui je vous fais découvrir le C.

(...)

 En construction . . .

Je t'encourage à continuer le poste, ça fait du bien le savoir et de le voir autrement rédigé que sur d'autres grands sites de cours info peuvent apporter un plus.

Si tu en as n'hésites pas à ajouter des anecdotes sur ton apprentissage histoire de rajouter une touche perso sur le cours et donc de la plus value ;)

Share this post


Link to post
Share on other sites
il y a 40 minutes, Galfer a dit :

Je t'encourage à continuer le poste, ça fait du bien le savoir et de le voir autrement rédigé que sur d'autres grands sites de cours info peuvent apporter un plus.

Si tu en as n'hésites pas à ajouter des anecdotes sur ton apprentissage histoire de rajouter une touche perso sur le cours et donc de la plus value ;)

Merci ^_^ ! Je vais essayer d'y incorporer des anecdotes du coup oui ^^ !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now