Difference between out mode and in out mode? As far i have collected the info is the main difference i know is that in both out and in out mode the actual parameter is expected to be altered even writing and reading is also possible then what is main difference please help me to understand?
what is the main Difference between out mode and in out mode?
1.9k Views Asked by anil yost At
1
There are 1 best solutions below
Related Questions in ADA
- How do you get files with extension from folder in Ada95?
- Ada Encapsulated Library Project GNAT
- Technical explanation for discrepancy in uninitialized variable in Ada?
- Ada Function Parameter as Access Type or Not
- GTK: Using an Offscreen Window to investigate the rendered dimensions of widgets
- Ada83 Constraint Error not Present in Watch Window
- Can't find GNAT GPS Dependencies Form
- Ada dynamic array allocation index range
- Ada toolchain for Windows CE
- How can I migrate an application written in DEC Ada to Windows?
- How to check if task is terminated in Ada
- Ada : String legal value?
- How to print first n lines of a variable with GDB?
- Is the Ada programming language still relevant in the military?
- Out parameter undefined
Related Questions in MODE
- a+ and a mode with fopen()
- Finding mode in List of integers
- MODE with SUMPRODUCT formula
- why mode in scipy.stats do not work
- How to map vim visual mode to replace my selected text parts?
- C++11 - Error in calculating mode in a vector of numbers
- Most Frequent Word In A Range, Ignoring Blanks
- Fill in missing values with mode in SAS
- Finding Most Common Word In A Tally/Ledger System
- Automatically detect Car mode/Driving Mode in Android
- How to disable auto new line in verilog mode in emacs
- iserror function for mode - vba excel
- Drools mode stream and containers
- what is the main Difference between out mode and in out mode?
- Excel debug mode failure
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The best explanation of the difference is in RM 6.4.1(11-15).
Semantically, there is a difference only for parameters that are passed by copy. If you call a subprogram that has an
in outparameter, the actual parameter is expected to have a legitimate value before the call. On entry, the subprogram makes a copy of the variable and checks to make sure it satisfies the constraints.For an
outparameter, the actual parameter does not need to have a value going in; it could be uninitialized garbage. The intent is that the subprogram will not use the value of this parameter until it has been set, by the subprogram (it can be set either by assignment or by being passed as anoutparameter to some other subprogram, or to aDefault_Value, or perhaps by other means). This is not enforced, however.This can cause different behavior in some cases. For example:
Since
Paramis anin outparameter, the constraints are checked on entry. Thus, the call toProc(Y)raises aConstraint_Error. However:In this case, no
Constraint_Erroris raised. In fact,Ydoes not need to be initialized at all, because the expectation is that the procedure will not use the input value. According to the RM, the value is not even copied, for certain classes of parameter types. So in this case:Save_Paramwill probably be set to some garbage value, not3. (In Ada 2012, there is aDefault_Valueaspect that can be applied to subtypes; in a case like that, anoutparameter would be set to this default value instead of uninitialized garbage, while anin outparameter would still get the value from the actual parameter.)For parameters that are passed by reference, there really is no difference in behavior.
The rules in Ada 83 were different. A subprogram with an
in outparameter could both read and write that parameter, while a subprogram with anoutparameter was allowed to assign to the parameter but could not do anything that would read that parameter's value (barring some cases where there was no way around reading discriminants). Thus:In other words, an
outparameter really wasoutput-only. The rule was relaxed in Ada 95, though, as programmers found it too restrictive.