[C con Clase] Para que sirve esta notación?? ^= y algunas mas

Pau Marc Munoz Torres paumarc en gmail.com
Sab Oct 9 11:50:11 CEST 2010


X^=Y es lo misos que decir X=X^Y donde ^ es la potencia de

2010/10/8 Miguel Olave <molavec en gmail.com>

> Por qu'e resulta tan fácil cuando te explican. Parecen hasta tontas las
> preguntas. Muchas gracias Steven me ahorraste horas de búsqueda.
>
> 2010/10/8 Steven Davidson <srd4121 en njit.edu>
>
>> Hola Miguel,
>>
>>
>> On 10/8/2010 3:10 AM, Miguel Olave wrote:
>>
>>> Muchas gracias Steven, como siempre ayudando al necesitado, sabía que
>>> ese operador en algún momento lo había tenido que ocupar pero no me
>>> acordaba para que servía.
>>>
>>>
>> De nada; para eso estoy :)
>>
>>
>>  Estoy revisando un código que sirve para recuperar el estatus de
>>> termino de hilos y aparecen otras notaciones que desconozco:
>>>
>>> 1.- Esto aparece en una librería .h. ¿Para que son los puntos
>>> suspensivos?
>>>
>>>
>> Es la forma de indicar a C/C++ que la función acepta una cantidad variable
>> de argumentos. Por ejemplo, 'printf()' y 'scanf()' funcionan de esta manera.
>> Lo más seguro es que estas funciones funcionan (valga la redundancia)
>> similarmente a las anteriores. Pasas una cadena que representa un formato
>> para indicar a la función cuántos parámetros posteriores vas a pasar y cómo
>> deben ser interpretados.
>>
>> Para más información acerca de la creación de este tipo de funciones,
>> consulta el capítulo 20:
>> http://c.conclase.net/curso/index.php?cap=020b#PAR_VARIABLES
>>
>>
>>  void err_dump(const char *, ...); /* {App misc_source} */
>>> void err_msg(const char *, ...);
>>> void err_quit(const char *, ...);
>>> void err_exit(int, const char *, ...);
>>> void err_ret(const char *, ...);
>>> void err_sys(const char *, ...);
>>>
>>> void log_msg(const char *, ...); /* {App misc_source} */
>>> void log_open(const char *, int, int);
>>> void log_quit(const char *, ...);
>>> void log_ret(const char *, ...);
>>> void log_sys(const char *, ...);
>>>
>>> 2.- Lo otro es que aparece el siguiente código que no se me hubiese
>>> ocurrido posible. Retornar en una función void de esta forma, :
>>>
>>> void *
>>> thr_fn1(void *arg)
>>> {
>>> printf("thread 1 returning\n");
>>> return((void *)1);
>>> }
>>>
>>>
>> Puedes retornar lo que quieras, todo depende de la interpretación que
>> apliques.
>>
>>
>>  El asunto es que esa función es ocupada para analizar el el retorno de
>>> una hebra
>>> err = pthread_create(&tid1, NULL, thr_fn1, NULL);
>>> if (err != 0)
>>> err_quit("can't create thread 1: %s\n", strerror(err));
>>> err = pthread_join(tid1, &tret);
>>> if (err != 0)
>>> err_quit("can't join with thread 1: %s\n", strerror(err));
>>>
>>> En este punto pthread_join puede manejar ese tipo de retornos??
>>>
>>> Lo pregunto porque no he podido compilar los archivos debido a que me
>>> lanza el siguiente error:
>>>
>>> carlos$ *cc exitstatus.c -l pthread -o exitstatus*
>>> /tmp/ccQGYKoy.o: In function `main':
>>> exitstatus.c:(.text+0x87): undefined reference to `err_quit'
>>> exitstatus.c:(.text+0xd2): undefined reference to `err_quit'
>>> exitstatus.c:(.text+0x10d): undefined reference to `err_quit'
>>> exitstatus.c:(.text+0x15f): undefined reference to `err_quit'
>>> collect2: ld returned 1 exit status
>>>
>>> Si alguien pudiese jugar y compilarlos y pillar el error lo
>>> agradecería nuevamente, adjunto los archivos. En caso contrario no
>>> hay problema, creo que sobreviviré al certamen de mañana (o eso
>>> espero).
>>>
>>>
>> Tienes errores de enlazado. Esto significa que no has enlazado la
>> biblioteca requerida que contiene las implementaciones de 'err_quit()'.
>>
>>
>> Espero que todo esto te ayude.
>>
>>
>> Steven
>>
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
Pau Marc Muñoz Torres

Laboratori de Biologia Computacional
Institut de  Biotecnologia   i Biomedicina Vicent Villar

Universitat Autonoma de Barcelona
E-08193 Bellaterra (Barcelona)

telèfon:  (+34)935 86 89 39
Email : paumarc.munoz en bioinf.uab.cat
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101009/dcf88fbd/attachment.html>


Más información sobre la lista de distribución Cconclase