Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - fruz

#1
La parte del libro que dice que con static las variables buf y bufp no son visibles en getch y ungetch, ¿está mal? (Tanto las variables como las funciones están en el mismo archivo fuente.
#2
En el texto dice que las variables buf y bufp "deben ser externas para que puedan ser compartidas, aunque no deben ser visibles a los usuarios de getch y ungetch."
¿Quiénes son los usuarios de getch y ungetch?
¿Cómo es que al declararlas static no son visibles en getch y ungetch, estando en el mismo archivo fuente?
#3
No entiendo. ¿Qué significaría que SON visibles?
#4
Hola a todos. Tengo una duda:
En un ejemplo del libro de k&r se divide un programa en varios archivos fuente. Uno de ellos es getch.c:

#include <stdio.h>
#define BUFSIZE 100

char buf[BUFSIZE];
int bufp = 0;
itn getch(void) {
   ...
}

void ungetch(int) {
   ...
}

Dentro de getch y de ungetch se usan tanto buf como bufp.
Más adelante dice:
"La declaración static, aplicada a una variable o función externa, limita el alcance de ese objeto al resto del archivo fuente que se está compilando. Así las variables static externas proporcionan una forma de ocultar nombres como buf y bufp en la combinación getch-ungetch, que deben ser externas para que puedan ser compartidas, aunque no deben ser visibles a los usuarios de getch y ungetch."

¿Qué significa "ocultar nombres" y que "no son visibles"?

#5
¿Esto es así solo en el caso de los arrays? Si entiendo bien, cuando se trata de variables comunes no son las mismas, sinó copias.
#6
Hola! Tengo una duda con este ejemplo del libro de k&r.
Según entiendo en el while de main se le pasa valores a la función getline al momento de llamarla. ¿En qué momento se  le pasa el arreglo s (que está dentro de getline) al arreglo line?
También quisiera saber: ¿El arreglo s que está dentro de getline tiene una extensión de 1000 caracteres al igual que line?

#include <stdio.h>
#define MAXLINE 1000    // maximum input line size

int getline(char line[], int maxline);
void copy(char to[], char from[]);

/* print longest input line */

int main()
{
   int len;            //current line lenght
   int max;            //maximum length seen so far
   char line[MAXLINE]; //current input line
   char longest[MAXLINE];//longest line saved here

   max = 0;
   while ((len = getline(line, MAXLINE)) > 0)
       if (len > max) {
           max = len;
           copy(longest, line);
       }
       if (max > 0)   //there was a line
           printf("%s", longest);
           return 0;
}

/*  getline: read a line into s, return length */
int getline(char s[], int lim)
{
   int c, i;

   for (i = 0; i<lim-1 && (c=getchar()) != EOF && c !='\n'; ++i)
       s = c;
   if (c == '\n') {
       s = c;
       ++i;
   }
       s = '\0';
       return i;
}


/* copy: copy 'from' into 'to'; assume to is big enough */
void copy(char to[],char from[])
{
   int i;

   i = 0;
   while ((to = from) != '\0') {
       ++i;
   }
}
#7
Programación C/C++ / Re: Programación C
7 Abril 2019, 03:31 AM
Ahora entiendo. El hecho de que tenga () lo hace una función y si no tiene es una variable. Perdón por mi ignorancia.
#8
Programación C/C++ / Re: Programación C
7 Abril 2019, 03:14 AM
Si no existiera
   int power()

al estar
   int power;

¿printf tomaría "power" como una variable?


#9
Programación C/C++ / Re: Programación C
7 Abril 2019, 03:06 AM
Mi duda es cómo se sabe en printf que power no es una variable, que es una función.
#10
Programación C/C++ / Re: Programación C
7 Abril 2019, 02:48 AM
Si entiendo bien cuando el programa llega a printf y encuentra "power" se ejecuta la función "power". ¿No podría pasar que lo tome cómo una variable?