When files are loaded into IC , they stay loaded until they are explicitly unloaded. This is usually the functionality that is desired. If one of the program files is being worked on, the other ones will remain in memory so that they don't have to be explicitly re-loaded each time the one undergoing development is reloaded.
However, suppose the file foo.c is loaded, which contains a definition for the function main. Then the file bar.c is loaded, which happens to also contain a definition for main. There will be an error message, because both files contain a
main. IC will unload bar.c, due to the error, and re-download foo.c and any other files that are presently loaded.
The solution is to first unload the file containing the main that is not desired, and then load the file that contains the new
C> unload foo.c
C> load bar.c