{{fbdoc item="title" value="__FB_OPTION_BYVAL__"}}----
Intrinsic define (macro value) set by the compiler

{{fbdoc item="syntax"}}##
	""__FB_OPTION_BYVAL__""
##
{{fbdoc item="desc"}}
	Indicates if parameters to a ##[[KeyPgFunction|Function]]## or ##[[KeyPgSub|Sub]]## are passed by reference as with ##[[KeyPgByref|Byref]]##, or by value as with ##[[KeyPgByval|Byval]]## by default when the by value / by reference specifier is not explicitly stated.
	
	##""__FB_OPTION_BYVAL__""## is set to non-zero (-1) if by default parameters are passed value, and zero (0) if by default parameters are passed by reference.
	
	The default for passing parameters by reference or by value is determined by the //[[CompilerOptlang|-lang]]// command line option used during compilation or usage of ##[[KeyPgOptionbyval|Option Byval]]## in the source file.

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/defines/fboptionbyval.bas"}}%%(freebasic)
#if( __FB_OPTION_BYVAL__ <> 0 )
  #error Option ByVal must not be used With This source
#endif
%%

{{fbdoc item="diff"}}
	- New to ""FreeBASIC""

{{fbdoc item="see"}} 
	- ##[[KeyPgByval|Byval]]##
	- ##[[KeyPgByref|Byref]]##
	- ##[[KeyPgOptionbyval|Option Byval]]##

{{fbdoc item="back" value="CatPgDddefines|Intrinsic Defines"}}