Afficher un message
Vieux 19/10/2007, 17h58   #5
Barry Schwarz
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: What should be the prototype of this function ? (noonie)

On Wed, 17 Oct 2007 09:24:50 -0000, "ianbrn@gmail.com"
<ianbrn@gmail.com> wrote:

>Hello,
>I have a struct defined thus:
>
>typedef struct myStruct
>{
> int j;
>} myStruct;
>
>I saw somewhere calls with the following syntax:
>f1(&*a)


It would if we new what a was.

What do you think the effect of the combined & and * operators is? For
extra points, would it make a difference if the operators were
reversed? What is the only possible type the expression &*a (or *&a)
can have (on those occasions when it is a legal expression)?

>
>What should be the protype of f1 so that it will be correct and
>so that compilation will succeed ?


The prototype is not the problem.

>
>I am talking about two cases:
>In the first, we have the following definition:
>myStruct a;


What happens when you apply the * operator to a struct?

>
>in the second, we have
>myStruct* a;
>
>Is it possible with both case to have a definition of f1() so that
>f1(&*a) will be correct and pass compilation ?


While passing an incompatible type to a function possibly could be
"corrected" by changing the prototype, what makes you think a
prototype can magically correct a syntax error?

Again, what happens when you apply the * operator to a struct?

>
>Any ideas?


Yes. Make a note of the author who wrote the call to f1. Then make
sure you never again take anything written by him seriously.


Remove del for email
  Réponse avec citation
 
Page generated in 0,05388 seconds with 9 queries