I have huge problem understanding what types i can declare here…
Obviously the “int” type that IDA uses everywhere cannot be found i the “Local Types”:
I don’t also know how to go from the type declared in pseudocode to the definition of this type.
That works really well in Ghidra
Hi,
Autocompletion for this dialog is not yet implemented (but is planned). You can use the following types in it :
- standard C types (
int,short,char, etc.); - some decompiler-specific types;
- types from Local Types;
- types from the loaded Type Libraries;
- Shifted pointers;
In the pseudocode view, you can also use the Convert to struct * action to quickly pick an available struct/pointer from Local Types (and, optionally, specify a shift value) and convert the current variable to a pointer to it.
Thank you. Any idea why in this case 2 things happen:
- I click OK
- function name is not applied:
- function definition changed color
A function type covers only the arguments and the return type; the name of the function is not part of the type. For example, the following two prototypes are equivalent:
int f1(int a, char *b);int f2(int c, char *d);
To rename the function, use “Rename global item” action (N shortcut).
Once a non-guessed prototype is applied to a function (either specified by the user, or from debug info), it changes color to show this fact. It is a bit more obvious in the default (light) color theme - the prototype changes from gray to blue. In addition, the entry in the Function list becomes bold.
But it’s called prototype. So atm even that I know the full function definition I have to copy and paste two times and click two shortcuts to change that?
In Ghidra there’s a nice way to import function declaration from other projects / c headers. Then I can just drag&drop function declaration from Data Manger and it’s all done automatically.
Meanwhile in IDA I can’t find a way to do this. Is there any?

You are right, it can be called a prototype. Could you tell me what does it imply in your opinion?
Thanks for pointing out that Ghidra behaves differently. We do not have shared type storage but plan to add.
In IDA, we have a way to import types from C headers. C++ is supported too now.
The initial design of IDA will focused on using the keyboard, not the mouse. In general the keyboard is faster. But we will keep improving mouse operations too.
Not sure what prototype implies but igor pointed out its a type.
Looking forward for shared type storage!
For functions, it is usually the same, type or prototype.
IDA keeps track of all functions I renamed since the first analysis?
No, there is only a flag which is set when the prototype is set or confirmed by user.




