{"id":62,"date":"2023-11-03T07:56:07","date_gmt":"2023-11-03T07:56:07","guid":{"rendered":"https:\/\/msxitalia.org\/?p=62"},"modified":"2023-12-17T10:37:25","modified_gmt":"2023-12-17T09:37:25","slug":"linguaggio-c-per-msx-lezione-1","status":"publish","type":"post","link":"https:\/\/msxitalia.org\/en\/linguaggio-c-per-msx-lezione-1\/","title":{"rendered":"C language for MSX \u2013 lesson 1"},"content":{"rendered":"<div class=\"xdj266r x11i5rnm xat24cr x1mh8g0r x1vvkbs x126k92a\">\n<h1 dir=\"auto\" style=\"text-align: center\">Linguaggio C per MSX<\/h1>\n<h1 dir=\"auto\" style=\"text-align: center\">Rubrica a cura di Nicola Brogelli (Parte 1)<\/h1>\n<h2 dir=\"auto\" style=\"text-align: center\">Tipi primitivi<\/h2>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\">\u00a0 \u00a0Il linguaggio C mette a disposizione degli sviluppatori una serie di tipi di dato detti primitivi e una serie di operazioni che possono essere effettuate su di essi. Quindi ogni \u201coggetto\u201d \u00e8 individuato da due entit\u00e0: un insieme di valori che questo pu\u00f2 assumere e un insieme di operazioni definite su di esso. Nella tabella seguente troviamo l\u2019elenco dei tipi primitivi che il linguaggio ci mette a disposizione.<\/div>\n<div dir=\"auto\"><\/div>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\" style=\"padding-left: 40px\"><strong>char<\/strong>, Carattere, pu\u00f2 avere il modificatore <strong>signed \/ unsigned<\/strong><\/div>\n<div dir=\"auto\" style=\"padding-left: 40px\"><strong>int<\/strong>, Numero intero, pu\u00f2 avere il modificatore <strong>short \/ long \/ unsigned<\/strong><\/div>\n<div dir=\"auto\" style=\"padding-left: 40px\"><strong>float<\/strong>, Numero decimale<\/div>\n<div dir=\"auto\" style=\"padding-left: 40px\"><strong>double<\/strong>, Numero decimale in doppia precisione, pu\u00f2 avere il modificatore <strong>long<\/strong><\/div>\n<div dir=\"auto\"><\/div>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<h3 dir=\"auto\">Tipo intero<\/h3>\n<div dir=\"auto\">\u00a0 \u00a0Il tipo primitivo <strong>int<\/strong> rappresenta nel linguaggio C i numeri interi. Se N \u00e8 il numero di bit impiegati per rappresentare questo tipo di dato, i valori che potranno essere assunti saranno rappresentati dall\u2019intervallo da -2N-1 a 2N-1-1.<\/div>\n<div dir=\"auto\">Per conoscere esattamente come il nostro sistema implementa questo tipo di dato \u00e8 sufficiente utilizzare l\u2019operatore <strong>sizeof (tipo)<\/strong>, il quale restituir\u00e0 un numero che rappresenta l\u2019occupazione in bytes del tipo specificato.<\/div>\n<div dir=\"auto\"><strong>\u00a0 \u00a0Osservazione<\/strong>: Al tipo int si possono aggiungere i modificatori short, long che permettono di rappresentare gli interi su un numero minore o maggiore di bit. In linea generale possiamo affermare che un int non potr\u00e0 mai essere minore di uno short int e di conseguenza un long int non potr\u00e0 mai essere minore di un int. In particolari implementazioni potremmo rilevare che i tre tipi avranno la medesima occupazione di memoria. Esiste un altro modificatore chiamato <strong>unsigned<\/strong> questo permette di definire tipi intero senza segno. In questo caso se N \u00e8 il numero di bit impiegati per rappresentare questo tipo di dato, i valori che potranno essere assunti saranno rappresentati dall&#8217;intervallo da 0 a 2N-1 (di default tutti i tipi sono definiti signed).<\/div>\n<div dir=\"auto\"><strong>\u00a0 \u00a0Nota<\/strong>: In questo caso ho utilizzato la parola modificatore per intendere che il prefisso short, long e unsigned alterano la rappresentazione del nostro intero in memoria. Da notare che in molta documentazione non \u00e8 utilizzata la parola modificatore ma si utilizza direttamente il termine tipo.<\/div>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\"><\/div>\n<div dir=\"auto\">Nella breve introduzione ho specificato che ogni \u201coggetto\u201d \u00e8 individuato da due entit\u00e0: un insieme di valori che l\u2019oggetto pu\u00f2 assumere (questo \u00e8 gi\u00e0 stato analizzato in precedenza) e un insieme di operazioni definite su di esso.<\/div>\n<div dir=\"auto\">Quelle riportate nella tabella sono alcune tra le operazioni che Il linguaggio C mette a disposizione sugli interi:<\/div>\n<\/div>\n<div dir=\"auto\">\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Operatori matematici\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 Operatori logici<\/strong><\/p>\n<p><strong>Simbolo\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descrizione\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Simbolo\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Descrizione<\/strong><br \/>\n+\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Somma\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0OR a bit<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Sottrazione\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 &amp;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 AND a bit<br \/>\n*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Moltiplicazione\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 ^\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OR ESCLUSIVO a bit<br \/>\n\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Divisione\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 ~\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Complemento<br \/>\n%\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Resto della divisione\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 &lt;&lt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Shift a sinistra<br \/>\n&gt;&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Shift a destra<\/p>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\">\u00a0 \u00a0Facciamo ora un esempio concreto di come si definisce una variabile di tipo intero assieme ai suoi modificatori e la sua contestuale inizializzazione. \u00c8 bene ricordare che in C l\u2019utilizzo di una variabile dichiarata ma non inizializzata porter\u00e0 a un comportamento inatteso del programma, anche se nei moderni compilatori il problema viene intercettato e segnalato durante la fase di compilazione.<\/div>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<pre dir=\"auto\" style=\"padding-left: 40px\">short s = 0;\r\n\r\nint i = 0;\r\n\r\nlong l = 0;\r\n\r\nunsigned int = 0;\r\n\r\n<\/pre>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<h3 dir=\"auto\">Tipo reale<\/h3>\n<div dir=\"auto\">\u00a0 \u00a0Per i numeri reali esistono due tipi di dato <strong>float <\/strong>e <strong>double<\/strong>, che possono offrire una diversa precisione. La precisione offerta dipende dall\u2019implementazione di ciascun tipo. Di conseguenza ci potr\u00e0 essere la possibilit\u00e0 che il tipo float e double abbiano la stessa occupazione in memoria, ma non potr\u00e0 succedere che il tipo float sia pi\u00f9 preciso del tipo double.<\/div>\n<div dir=\"auto\">Per conoscere l\u2019effettiva implementazione dei tipi reali \u00e8 sufficiente utilizzare l\u2019operatore sizeof (tipo), il quale restituir\u00e0 un numero che rappresenta l\u2019occupazione in bytes del tipo specificato.<\/div>\n<div dir=\"auto\">\u00a0 \u00a0<strong>Osservazione<\/strong>: Al tipo double \u00e8 possibile aggiungere il modificatore long che ne permette un ulteriore estensione, modificandone cosi l\u2019occupazione in memoria.<\/div>\n<div dir=\"auto\">L\u2019insieme delle operazioni definite sui tipi reali offerte dal linguaggio C sono riportate nella tabella seguente<\/div>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\">\n<p><strong>\u00a0 \u00a0Operatori matematici\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0 <\/strong><\/p>\n<p><strong>Simbolo\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descrizione\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><br \/>\n+\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Somma<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Sottrazione<br \/>\n*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Moltiplicazione<br \/>\n\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Divisione<br \/>\n%\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Resto della divisione<\/p>\n<\/div>\n<div dir=\"auto\"><\/div>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\">Facciamo ora un esempio concreto di come si definisce una variabile di tipo reale assieme ai suoi modificatori e la sua contestuale inizializzazione. \u00c8 bene ricordare che in C l\u2019utilizzo di una variabile dichiarata ma non inizializzata porter\u00e0 a un comportamento inatteso del programma, anche se nei moderni compilatori il problema viene intercettato e segnalato durante la fase di compilazione.<\/div>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<pre dir=\"auto\" style=\"padding-left: 40px\">float f = 2.2;\r\n\r\ndouble d = 2.0;\r\n\r\nlong double ld =1.5;\r\n\r\n<\/pre>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<h3 dir=\"auto\">Tipo char<\/h3>\n<div dir=\"auto\">\u00a0 \u00a0Il tipo <strong>char<\/strong> ha come insieme di valori un set di caratteri opportunamente codificati. L\u2019insieme dei valori associati al tipo char sono, le lettere dell\u2019alfabeto, le cifre decimali, i simboli di punteggiatura e altri simboli vari. Ogni valore di tipo char viene rappresentato dal suo codice.<\/div>\n<div dir=\"auto\">Per conoscere l\u2019effettiva implementazione dei tipo char \u00e8 sufficiente utilizzare l\u2019operatore <strong>sizeof (tipo)<\/strong>, il quale restituir\u00e0 un numero che rappresenta l\u2019occupazione in bytes del tipo specificato (normalmente un byte).<\/div>\n<div dir=\"auto\">\u00a0 \u00a0<strong>Osservazione<\/strong>: Il tipo char pu\u00f2 essere considerato a tutti gli effetti un tipo intero, i cui valori sono generalmente rappresentati su 8bit e al quale \u00e8 possibile applicare i modificatori <strong>signed<\/strong> ed <strong>unsigned<\/strong>.<\/div>\n<div dir=\"auto\">Potendo trattare quindi il tipo char a tutti gli effetti come un tipo int, potremmo quindi dedurre che L\u2019insieme delle operazioni definite sui tipi int possono essere applicate anche al tipo char.<\/div>\n<\/div>\n<div dir=\"auto\">\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Operatori matematici\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0 <\/strong><\/p>\n<p><strong>Simbolo\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descrizione\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><br \/>\n+\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Somma<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Sottrazione<br \/>\n*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Moltiplicazione<br \/>\n\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Divisione<br \/>\n%\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Resto della divisione<\/p>\n<\/div>\n<div dir=\"auto\"><\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\">\u00a0 \u00a0Facciamo ora un esempio concreto di come si definisce una variabile di tipo char assieme ai suoi modificatori e la sua contestuale inizializzazione.<\/div>\n<pre dir=\"auto\" style=\"padding-left: 40px\">char a = \u2018A\u2019;\r\n\r\nchar c = 65;\r\n\r\n<\/pre>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<h3 dir=\"auto\">Costanti<\/h3>\n<div dir=\"auto\">\u00a0 \u00a0Per specificare che un \u201coggetto\u201d \u00e8 costante dobbiamo anteporre alla dichiarazione del tipo la parola chiave <strong>const<\/strong> . In questo caso \u00e8 obbligatorio effettuare l&#8217;inizializzazione contestualmente alla dichiarazione. Il loro valore non potr\u00e0 essere cambiato all\u2019interno del programma. Di questo controllo sar\u00e0 effettuato a tempo di compilazione.<\/div>\n<pre dir=\"auto\" style=\"padding-left: 40px\">const int a = 100;\r\n\r\nconst double pi = 3.14159;\r\n\r\n<\/pre>\n<\/div>\n<div class=\"x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a\">\n<p dir=\"auto\">Se il contenuto ti ha soddisfatto qui trovi la <a href=\"https:\/\/msxitalia.org\/linguaggio-c-per-msx-lezione-2\/\">seconda dispensa<\/a>.<\/p>\n<p dir=\"auto\">\u00a0 \u00a0Per chi fosse interessato l&#8217;<a class=\"x1i10hfl xjbqb8w x6umtig x1b1mbwd xaqea5y xav7gou x9f619 x1ypdohk xt0psk2 xe8uvvx xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x16tdsg8 x1hl2dhg xggy1nq x1a2a7pz xt0b8zv x1qq9wsj xo1l8bm\" role=\"link\" href=\"https:\/\/www.facebook.com\/Associazione.MSX.Italia?__cft__[0]=AZWtW1kbPNs-h0X85XLUtlSKwrS2h0EfGuNwjtd0M1PViiWRP1v-ecIHfthHvkFXOWHq94BEStwCld8Sjyxph5HZV4pPzclIzcfMyJIWrb9R-3V_FjjkVgcWyg5bavYJbeQZX-I3whyOQrf4Qant6h10WsQDbiQVQEyQIPwa7IigJywispZTopKR03G8R5dvPlVM89QzLX0uMinZyfKrpw6A&amp;__tn__=-]K-y-R\"><span class=\"xt0psk2\">Associazione MSX Italia<\/span><\/a> ha creato un gruppo di lavoro di Ricerca e sviluppo sulla programmazione C per MSX. Per maggiori info:\u00a0associazioneMSXitalia@gmail.com<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Linguaggio C per MSX Rubrica a cura di Nicola Brogelli (Parte 1) Tipi primitivi \u00a0 \u00a0Il linguaggio C mette a disposizione degli sviluppatori una serie di tipi di dato detti primitivi e una serie di operazioni che possono essere effettuate su di essi. Quindi ogni \u201coggetto\u201d \u00e8 individuato da due entit\u00e0: un insieme di valori [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":5615,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[4],"tags":[],"dipi_cpt_category":[],"class_list":["post-62","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linguaggio-c"],"_links":{"self":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":16,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/62\/revisions"}],"predecessor-version":[{"id":6289,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/62\/revisions\/6289"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/media\/5615"}],"wp:attachment":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/media?parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/categories?post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/tags?post=62"},{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/dipi_cpt_category?post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}