C/Visual C - Técnico

 
Vista:

Técnico

Publicado por Simón (3 intervenciones) el 27/10/2007 00:34:27
Saludos amigos, ¿podría alguíen explicarme,porque el lenguaje C al igual que el Pascal al ser editados, suele mostrarse tan desordenado a diferencia del BASIC por ejemplo (salvando las distancias entre ambas herramientas por supuesto)?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Técnico

Publicado por Alexis (14 intervenciones) el 27/10/2007 19:30:33
Desordenado como??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Técnico

Publicado por Simón (3 intervenciones) el 28/10/2007 01:04:46
Gracias por interesarse en la pregunta...ok le explico...trabajo en el area electrónica y tengo conocimientos basicos de assembly y BASIC; ahora bien, si ud a trabajado en ambos o alguno de ellos notara a primera vista un orden en la edicion del texto como sigue.
-----------------------------------------------------------------------------------------------
P = VARPTR(Machine(1)) ' put the routine data into memory
DEF SEG = VARSEG(Machine(1))
FOR I = 0 TO 30
READ J
POKE (P + I), J
NEXT I
DEF SEG

PRINT "Wait about 32 seconds..."
T# = TIMER
Delay MilliSec% ' call the delay routine
D# = TIMER - T#: PRINT D#

END
------------------------------------------------------------------------------------------------
ó en assembler:
------------------------------------------------------------------------------------------------
BCF STATUS, 5 ;CAMBIO A otro banco de memoria pagina0
MOVLW 0XCD ;CLOCK RC,CH 0 SELECT, A\D ON
MOVWF ADCON0 ;
BCF PIR1,6 ;CLEAR A\D INT FLAG
BSF INTCON,6 ;ENABLE PERIPHERAL
BSF INTCON,7 ; '' all interrupt
CALL TRANSMICION_S
MOVLW 0XCD ;HABILITACION DE LOS PROXIMOS
------------------------------------------------------------------------------------------------
pero en lenguaje C y en Pascal me llama la atencIón el descuido (ignoro si es intencional o nó) a la hora de expresar un programa en el editor de texto..por ejemplo se notan lineas dejadas en blanco, espacios a veces exajerados dentro de una misma linea, no existe numeracion de cada linea, corchetes etc, etc
--------------------------------------------------------------------------------------------------
void Setup_Serial(registerw SPBRG_value);
char Receive(void);
#define TRANSMIT(Byte) {while(!CHAR_TXD); TXREG = Byte;}

#define BAUD2400_4MHZ 25

void main()
{
char ch;
Setup_Serial(BAUD2400_4MHZ); // (2400 baud @ 4MHz input clock)
while(1)
{
ch = Receive(); // Receive character 'ch'
TRANSMIT(toupper(ch)); // Transmit it back in uppercase
}
}
----------------------------------------------------------------------------------------------------
como se puede notar, en el ejemplo en las 2 ultimas lineas hay dos llaves, me preguntaba , ¿por que los programadores suelen usar una linea para cada llave en lugar de colocar una seguida de la otra en la misma linea por ejemplo?, o ¿por que no se respeta el margen ni derecho ni izquierdo a la hora de editar, entendiendo que aunque hay mucho espacio, me resulata mas confuso a la vista a a la hora de interpretar lo que se quiere hacer o a la hora de buscar un punto especifico dentro del programa?.........(aun que en honor ala verdad el ejemplo que coloque arriba se ve relativamente ordenado en comparación a otros que he revisado)

Ttodo esto lo plateo en el entendido de que estoy iniciandome en lenguaje C , que según entiendo es una poderosa herramienta para la programación de microcontroladores y que actualmente solo trabajo en assembly.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Técnico

Publicado por Alexis (14 intervenciones) el 28/10/2007 22:04:29
Bueno como bien has dicho lenguaje c es una poderosa herramienta que al igual q otros lenguajes tiene ventajas y desventajas. Lo de porque se utiliza una linea solo para colocar un corchete, personalmente, lo hago para saber cuando cerrar un ciclo o una funcion, etc y para llevar un "orden" de lo que estoy haciendo. AHora, con respecto a los margenes y a la cantidad de espacio "perdido" en el editor es porque (por lo menos es lo que yo tengo entendido) de esta manera el sistema puede compilar de una forma mas rapida. Detalles mas especificos no puedo darte porque no los conosco pero de verdad esta muy interesante tu duda....

Cualquier otra cosa del lenguaje, no dudes en escribir aqui

Exito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Técnico

Publicado por Simón (3 intervenciones) el 29/10/2007 02:47:51
Ok Amigo Alexis gracias por su interés, y de verdad ahora que estoy tratando de iniciarme en esto creo que lo que ud me señala es importante..ya que aclaro lo de los espacios...son a discreción del programador definitivamente, y lo tomare en cuenta para cuando me toque llegara ese punto; por otro lado lo de agilizar la compilación me queda pendiente y sería cuestión de profundizar en el lenguaje para determinar que tan cierto es eso...pero no deja de tener sentido.
Bueno te reitero mi agradecimiento por su tiempo y estaré en cuenta de su oferta para volver a preguntar cualquier duda...Bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Técnico

Publicado por Nelek (816 intervenciones) el 30/10/2007 09:11:30
Lo del ordenamiento suele depender mas que nada del programador para mantener una estructura legible. Como poder se puede escribir de manera continua sin perder ninguna linea. El compilador no lee los espacios en blanco, asi que las tabulaciones y los espacios entre parentesis, despues de comas para separar parametros y demas... se los pasa por el forro. Los diferentes comandos los diferencia con el punto y coma.

Una pregunta: Que te resulta mas claro para leer?

if (var1==0){return=Funcion1(parametro1,parametro2);if(return)return;Funcion2(par3);}else{Array[0]=funcion3();printf("%d", parametro4);}return SUCCESS;

o bien

if (var1==0)
{
return = Funcion1 (parametro1, parametro2);
if(return)
return;

Funcion2(par3);
}
else
{
Array[0]=funcion3();
printf("%d", parametro4);
}

return SUCCESS;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar