Semantica o struttura - che dovrebbe avere la preferenza per la denominazione delle variabili?

2

Abbiamo uno stack di chiamate nel nostro progetto. Il programma è scritto per microcontrollore, il linguaggio è C. Lo stack di chiamata è fondamentalmente un array di numeri interi. La variabile che rappresenta questo stack di chiamate termina con la stringa _stack .

Stavo rivedendo l'implementazione. La funzione è il ripristino del ripristino, non lo stack delle chiamate, ma lo stack delle chiamate fa parte della funzionalità. Quando ho visto per la prima volta la variabile, ho pensato che fosse usata come una pila. Quindi ho assunto il seguente:

  • Non è possibile accedere a nessuna voce diversa dall'ultima voce.
  • Ci saranno operazioni PUSH / POP / CLEAR / TOP.

Successivamente, ho trovato che la prima voce (indice 0) è sempre selezionata in una condizione speciale. Ho anche trovato una funzione in cui tutti gli elementi dell'array vengono letti in sequenza dall'indice 0 all'inizio. Entrambi sono operazioni di stack non valide.

Penso che il nome della variabile non debba contenere la stringa stack in quanto non è uno stack, ma è usato come lista. Ma il programmatore sta mostrando una logica valida, che secondo il significato semantico, è uno stack e in effetti ci sono le operazioni PUSH.

La variabile deve essere denominata con *stack* ?

    
posta Donotalo 23.01.2012 - 13:18
fonte

2 risposte

4

Nel tuo caso, la differenza tra chiamare la struttura a list che apparentemente è e un stack che viene effettivamente usato come, è il dibattito tra Sistemi e amp; Notazione ungherese .

A seconda della situazione e del contesto, uno potrebbe essere più appropriato dell'altro. Generalmente Apps Ungherese fornisce al lettore un contesto più ampio dell'uso della variabile basato sul solo nome di Systems Hungarian, portando così un codice un po 'auto-documentante.

    
risposta data 23.01.2012 - 13:32
fonte
4

SHUZAN held up his staff and waved it before his monks.

"If you call this a staff," he said, "you deny its eternal life. If you do not call this a staff, you deny its present fact. Tell me just what do you propose to call it?"

Se si tratta di una variazione o abbellimento di uno stack, mi piacerebbe chiamarlo uno stack.

Ma spero che ci sia un po 'di commenti o documentazione che spiega quali informazioni rappresenta, quali sono le normali operazioni tipo stack e perché è necessario avere gli altri che non seguono la disciplina dello stack.

    
risposta data 24.01.2012 - 00:58
fonte

Leggi altre domande sui tag