Diferencia entre revisiones de «Programación C y C++»

De Proyectos
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
 
(No se muestran 37 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
= Variables =
= [[Estructuras]] =
unsigned signed uint8_t byte int long char
= [[Punteros]] =
= [[Memoria Dinámica]] =
= [[Archivos]] =
= [[Variables]] =
= [[PROGMEM]] =
= [[Casting]] =
= Otros =
*casting
*typedf -> cambia nombre del tipo a otro nombre personalizado. Ej. typedef strcut contacto contacto_t; //Ahora escribiendo contacto_t estoy escribiendo en realidad struct contacto.


= Estructuras =
= Documentación =
== Definicion ==
[http://www.infor.uva.es/~belar/Ampliacion/Curso%202008_2009/Punteros_en_C.pdf Punteros en C]<br/>
*Permiten agrupar diferentes tipos de datos: int, long, char, ...
[http://www.zator.com/Cpp/index.htm Curso de C++ - Zator System ]<br/>
*Cada elemento de la estructura se llama miembro
== Declaracion ==
<pre>
struct nombre{<br/>
  int variable1;<br/>
  long variable2;<br/>
  char variable3[40];<br/>
};
 
struct nombre pedro; //En C es obligatorio usar la palabra struct en la declaracion de un objeto struct, en C++ no lo es.
</pre>
El objeto pedro es un struct de tipo nombre.<br/>
<br/>
Otra forma de declarar:<br/>
<pre>
struct nombre{
  int variable1;
  long variable2;
  char variable3[40];
}pedro;<br/>
</pre>
Para inicializar la variable pedro se hace como con los arrays,
<pre>
pedro = {2, 40, "hola"};
</pre>
Esto solo se usa en C, porque en C++ se pueden usar los constructores.<br/>
<br/>
En algunos compiladores es posible que se exiga poner antes de struct la palabra static.
 
 
== Acceder a la información ==
*Se utiliza el operador de selección (.) --> pedro.variable1
== Punteros a estructuras ==
== Funciones dentro de las estructuras ==
*Aplicable a C++.
*Son funciones que manipulan los datos de dentro de la estructura.
=== Constructor ===
*Es una función sin retorno y con el mismo nombre que la estructura
*Los valores no iniciados con los constructores contendran "basura"
*Se pueden definir varios constructores
 
Forma 1:
<pre>
struct Punto {
  int x, y;
  Punto() {x = 0; y = 0;} // Constructor
} Punto1, Punto2;
</pre>
Forma 2:
<pre>
struct Punto {
  int x, y;
  Punto(); // Declaración del constructor
} Punto1, Punto2;
// Definición del constructor, fuera de la estructura
Punto::Punto() { 
  x = 0;
  y = 0;
}
</pre>
 
=== Destructor ===
*Es igual pero con el simbolo ~ delante.
=== Funciones ===
*Se pueden incluir otras funciones que se declaran y definen como las funciones normales.
<pre>
struct stPareja {
  int A, B;
  int LeeA() { return A;} // Devuelve el valor de A
  int LeeB() { return B;} // Devuelve el valor de B
  void GuardaA(int n) { A = n;} // Asigna un nuevo valor a A
  void GuardaB(int n) { B = n;} // Asigna un nuevo valor a B
} Par;
int main() {
  Par.GuardaA(15);
  Par.GuardaB(63);
  cout << Par.LeeA() << endl;
  cout << Par.LeeB() << endl;
  return 0;
}
</pre>
 
== Arrays de estructuras ==
Funcionan como los demas arrays
 
== Asignación de estructuras ==
Ver apartado en [http://c.conclase.net/curso/?cap=011#inicio Curso de C++ - con Clase]
 
== Documentación ==
[http://c.conclase.net/curso/?cap=011#inicio Curso de C++ con clase]<br/>
[http://c.conclase.net/curso/?cap=011#inicio Curso de C++ con clase]<br/>
[http://www.elrincondelc.com/cursoc/cursoc14.html Curso de C - El Rincón de C]<br/>
[http://www.elrincondelc.com/cursoc/cursoc14.html Curso de C - El Rincón de C]<br/>
 
[http://www.codeproject.com/Articles/6555/To-new-is-C-To-malloc-is-C-To-mix-them-is-sin Diferencias entre Malloc, Realloc, ... y New, Delete]<br/>
= Punteros =
[http://www.angelfire.com/my/jimena/estructuras/archivos.html angelfire.com]<br/>
[http://www.infor.uva.es/~belar/Ampliacion/Curso%202008_2009/Punteros_en_C.pdf Punteros en C]
[http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos Wikilibros - Programación en C]<br/>
 
[http://www.cursomicros.com/avr/lenguaje-c/lenguajec.html cursomicros.com - Lenguaje C para Microcontroladores]<br/>
typedf -> cambia nombre del tipo a otro nombre personalizado. Ej. typedef strcut contacto contacto_t; //Ahora escribiendo contacto_t estoy escribiendo en realidad struct contacto.

Revisión actual - 10:54 21 mar 2013