Convenzioni e notazione

3
L'esperienza di programmazione pluridecennale ha portato a scrivere il codice usando convenzioni e notazioni "particolari", per cercare di aiutare il programmatore nella comprensione e manutenzione del codice.

Notazione ungherese aumentata

In easyhand adotta la notazione detta ungherese o ungara, implementata con nuove specifiche.
Uno dei problemi della programmazione è la manutenzione del codice nel tempo: dovendo modificare un codice, proprio o di altri, non si ha subito cognizione del tipo di dati che stiamo usando.
In C, come in altri linguaggi, il nome della variabile non permette di capirne il tipo e contenuto: la notazione nasce per rendere subito identificabile il tipo (variabile/struttura/puntatore) e permette di risparmiare notevole tempo ed bugs.
Esempi
iNum indica che è la variabile è di tipo interno (SINT iNum).
szTest indice che la variabile è una stringa (CHAR szTest[20]).

Notazione usata

notazione Descrizione Esempio
i intero con segno 32bit INT iValore
ui intero senza segno 32bit UINT uiValore
w senza segno 16bit 'word' WORD wValore
dw senza segno 32bit 'double-word' DWORD dwValore
b Boolean BOOL bFlag
d double DOUBLE dValore
p puntatore (void) void * pValore
sz stringa statica CHAR szValore[20] CHAR szValore[100]
psz puntatore a stringa CHAR * CHAR * pszValore
s struttura (generico) S_ELEMENT sElemento
ps puntatore ad una struttura S_ELEMENT * psElemento
rs Result Set usato con SQL_RS o similari SQL_RS rsSet
id intero che identifica un record, solitamente un campo in autoincremento SINT idCode
ar array di stringhe EH_AR EH_AR arValue
ari array di interi INT ariCode[100]
ars array di strutture S_ELEMENT arsValue[100]
dmi struttura di tipo DMI EH_DMI dmiElement
pdmi puntatore ad una struttura di tipo DMI EH_DMI * dmiElement
dt Stringa contente data/ora in formato DT CHAR dtOggi[20]
eht Struttura con data e ora in formato EH_TIME EH_TIME ehTOggi
lst List EH_LST EH_LST lstEsempio
js Json EH_JSON EH_JSON jsInfo

Convenzioni

Gruppi funzioni easyhand

Se una funzione si dichiara statica, quindi visibile solo nell'ambito del sorgente deve iniziare con underscore '_'.
Putroppo per motovi storici le funzioni hanno nomi non omogenei e nel tempo vengono cambiati.
Attualmente le funzioni si dividono in questo modo:
valore Descrizione Esempio
eh funzioni del Kernel ehStart() / ehAlloc()
file funzioni che operano sui file fileOpen() / fileStrWrite
time funzioni che operano sui tempo timeNow() / timeFormat()
str funzioni che operano sulle stringhe CHAR strExtract() / strReplace()
wcs funzioni che operano sulle stringhe WCHAR wcsReplace()
srv funzioni che operano in un modo server srvSetup()


Modus operandi

  1. I progetti fatti da più file sorgenti hanno un file che contiene il main() e altri no
    Chi contiene il main deve includere #include "/easyhand/inc/eh_main.h"
    Gli altri #include "/easyhand/inc/easyhand.h"
  2. sSetup
    Solitamente si crea una struttura genera S_SETUP sSetup indipendente dal programma che contiene tutte le variabili globali condivise dai sorgenti.
    Chi si occupa di questa struttura è una srvSetup() di tipo srv.

Easyhand C/C++: Convenzioni e notazione | Last modified: 10/07/2014 06.08.24 Europe/Rome | #1.1331
P.. 3
Easyhand C/C++
Una mano alle tue idee.
Privacy Policy