A function that does... nothing... :-).
-
/******************************************************************************
FUNCTION : lpf_Null
DESCRIPTION : Does nothing.
******************************************************************************/
static void lpf_Null(void)
{}
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
-
/******************************************************************************
FUNCTION : lpf_Null
DESCRIPTION : Does nothing.
******************************************************************************/
static void lpf_Null(void)
{}
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
Is that function used inside the application or it was created just for a better and larger number of lines?
I have no smart signature yet...
-
Is that function used inside the application or it was created just for a better and larger number of lines?
I have no smart signature yet...
No its used as a handler function in a state machine. The function is really just a bi-product of the design... but still... I thought it was funny :).
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
-
/******************************************************************************
FUNCTION : lpf_Null
DESCRIPTION : Does nothing.
******************************************************************************/
static void lpf_Null(void)
{}
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
-
/******************************************************************************
FUNCTION : lpf_Null
DESCRIPTION : Does nothing.
******************************************************************************/
static void lpf_Null(void)
{}
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
I've created a few of those myself - sometimes it is a much better way than providing a special case. Think delegate that doesn't need a null test, for example. At least it had a sensible name!
Did you know: That by counting the rings on a tree trunk, you can tell how many other trees it has slept with.
-
No its used as a handler function in a state machine. The function is really just a bi-product of the design... but still... I thought it was funny :).
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
Agreed. State machines often need a null action when only the state transition is wanted. I've written plenty of 'em over the years, particularly in comms protocol implementations.
Software rusts. Simon Stephenson, ca 1994.
-
I have to agree. The man that wrote it is clearly some sort of relative genius.
-
/******************************************************************************
FUNCTION : lpf_Null
DESCRIPTION : Does nothing.
******************************************************************************/
static void lpf_Null(void)
{}
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
lpf_NoOp might be a better name.
-
lpf_NoOp might be a better name.
PIEBALDconsult wrote:
lpf_NoOp might be a better name.
From a logical perspective, I think the meaning and intention of "ptr = lpf_Null;" may be a little clearer than lpf_NoOp;" especially if there are places where the pointer will be checked against lpf_Null, but there are also places where it would be desirable to call it without having to check for the null case.
-
/******************************************************************************
FUNCTION : lpf_Null
DESCRIPTION : Does nothing.
******************************************************************************/
static void lpf_Null(void)
{}
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
There is nothing wrong with an explicit "do nothing". A NOP (No Operation) instruction exists in most micro-processor instruction sets, so you can replace a normal instruction (with N bytes of code), by one or a number of NOP instructions without having to move the instructions that follow. Similarly, you can create a NOP method, so you can have an array of delegates, some of them possibly just calling your "does nothing" method. And finally, such a stub can be used to add breakpoints, logging, or whatever is appropriate in the application domain. :)
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
-
Agreed. State machines often need a null action when only the state transition is wanted. I've written plenty of 'em over the years, particularly in comms protocol implementations.
Software rusts. Simon Stephenson, ca 1994.
-
No its used as a handler function in a state machine. The function is really just a bi-product of the design... but still... I thought it was funny :).
Mark Brock "We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
MarkBrock wrote:
No its used as a handler function in a state machine. The function is really just a bi-product of the design... but still... I thought it was funny .
Actually, I frequently used the same technique when I was programming in C - empty functions made good initializers for function tables, and if I wanted to track function calls all I had to do was add a trace of some sort to the empty functions.